Having done tracing files and tracking down where to make changes I found it very challenging/difficult to find where to focus on in the code. Honestly, some of the changes I made did not create any meaningful results OR resulted in things “breaking” (test file not working in the way i expected, runtime upped).
I have not tried to make a pull request or send it upstream because I did not make any significant progress that is worth uploading in my opinion. I also did not reach the stage of testing another architecture aside from AArch64, simply because of what’s stated above (no point testing on other archtectures for speed if it doesn’t even necessarily speed up on the AArch64).
A huge difficult in working on the project was isolating a specific area of code to work with. I found it hard to isolate an obvious area where improvements could ACTUALLY be made. Searching through multitude of different files to try to locate where the w+ mode for fopen (in stdio.h) could be optimized was extremely difficult. First of all, I could not locate what I planned to modify’s source code (ending up tracing it to the int open function, but could not find the actual source code which does not make sense to me, since i have the latest version of glibc).
Another personal difficulty for me was just the allocation of my time spent into this optimization. Unfortunately, due to circumstances I wasn’t able to allot the time I wanted to this project, having prioritized family matters and other unfortunate events. This was warned at the start of this course to work on this project over a long period of time and that will be a lesson learned.
For future large assignments I would approach things differently. Its apparent that it’s always better to start earlier and work in smaller chunks rather than big ones, but also rather that unlike most school labs/assignments that are small in scope which can be done by oneself, I have to reach out sooner for help on larger tasks as people
Now, with a better understanding of what is involved in undertaking a project like this, here is how I would approach something like this again, especially since I plan to continue what I’m doing here during the summer. If I decide to undertake a project like this in the future I will reach out to the community sooner to ask their advice instead of relying almost exclusively on my own research. There are always people with more expertise on subjects, and its a waste not to use those resources. By working on something consistently, it also gives time for me to reach different resources (resources that may not always get back to you, etc). This would give me more insight into my project/assignments.
the link to my github is: https://github.com/dleung25/
Above is where I’ve put my previous work, labs, and (hopefully) future implementation where I can find where to properly optimize this with an actual meaningful lower run-time for my tests.