Since I don't have computers that have different specs, I want to ask this so any experienced one may help me having answer.
I'm about to finish my project(it's written in c ) and my software does some AI stuff(that may be a huge task for hardware depending on the user) such as face detecting and recognizing, OCR, runtime detection model load ability, DVR/NVR playback and so on...
Most of the code(except libraries) are inside my executable project(it consists of source and headers). And there are some huge header files that are included almost over 170 (source)files.
The aim is to use this software on computers with low system specifications(Even with Raspberry pi).
I have been working on this project for over 1 year (almost full time). And I don't want to waste time with any unnecessary thing that even implementing them isn't worth it in my case. So, if I'd keep it this way(without having any additional DLLs), would it affect either performance of the software or hardware as long as I don't use so many threads at once?
Additionally, if we do not count the libraries, the number of code lines I wrote is around 150,000. The software is not totally platform-specific, the current aim is Windows and Linux(Linux tests still remain).
If I missed anything to mention, let me know.
CodePudding user response:
No. DLL's causes more delay in loading than a statically linked libraries. Because the operating system loader needs to open the dll and link it individually which affects time. Calling DLL functions is not slow because they are pointed in the import address table of your executable image, the loader then modify these pointers to match the address of symbols imported in the dll.