Со временем время компиляции проекта увеличилось. Но я не знаю, где самое длинное время компиляции. Один из них компилируется в EXE и заботится о платформе и рендеринг с OpenGL. Другой собирает DLL и обрабатывает большую часть моего прикладного бизнеса, например, рисование пользовательского интерфейса и данных обработки. Затем EXE загрузит часть DLL во время выполнения. Часть EXE имеет только 1000 строк кода, в то время как часть DLL имеет 3000 строк кода (NO, включая общий CPP) < /p>
. src = "https://i.sstatic.net/jfu3lqd2.png"/>
exected and stare -andpep share and exed and exed andpep share andpep share and exected cared andpper and share share and extred and share share and extep and extep and exected and share share andped and share share and extamed. Часть EXE действительно уменьшается до 0,4 секунды, DLL имеет едва ли какого -либо заметного эффекта < /p>
Также код написан в стиле процедурных C, поэтому нет сумасшедших вещей, таких как шаблоны, объекты или наследство
Единственное различие, которое я могу видеть в двух переводах. Компилятор работает и почему время компиляции так отличается. Я хотел бы знать, что кто -то сталкивается с этим, и как они справляются с этими < /p>
РЕДАКТИРОВАТЬ:
Пример кода из exe part < /p>
glActiveTexture(GL_TEXTURE0 + ImageSlot);
glBindTexture(GL_TEXTURE_2D, AppData->WhiteTestTexture.id);
glUniform1i(ShaderInput->UniformLocation[SUL_Texture0], ImageSlot);
ImageSlot++;
GL_DEBUG_ASSERT;
rlUpdateVertexBuffer(AppData->RectVertexBufferBlock, AppData->RectVertexData, VertexCount * sizeof(Vector4), 0);
rlUpdateVertexBuffer(ShaderInput->VertexBufferHandle[VB_ColorBuffer], AppData->RectColorData, VertexCount * sizeof(Vector4), 0);
rlUpdateVertexBuffer(ShaderInput->VertexBufferHandle[VB_TexCoordBuffer], AppData->RectTexCoordData, VertexCount * sizeof(Vector2), 0);
rlUpdateVertexBufferElements(AppData->RectIndexBuffer, AppData->RectIndexData, AppData->RectIndexDataCount * sizeof(unsigned int), 0);
glDrawElements(GL_TRIANGLES, AppData->RectIndexDataCount, GL_UNSIGNED_INT, 0);
rlDisableVertexArray();
rlDisableVertexBuffer();
rlDisableVertexBufferElement();
< /code>
Некоторые вызовы RL были просто оберткой или прямыми вызовами GL < /p>
Команда сборки:
exe: < /p>
cl -w -Zi /source-charset:utf-8 /MD /Gm- ..\code\d_main.cpp raylib.lib /link user32.lib opengl32.lib winmm.lib gdi32.lib shell32.lib ole32.lib comdlg32.lib /libpath:..\lib /out:DAPP.exe
< /code>
dll: < /p>
cl /source-charset:utf-8 -w -Zi /Gm- /MD ..\code\d_interface.cpp raylib.lib -LD /link /PDB:DSourceInterface_%timestamp%.pdb /dll user32.lib opengl32.lib winmm.lib gdi32.lib shell32.lib ole32.lib comdlg32.lib /libpath:..\lib /out:DSourceInterface.dll /export:Interface_IBabyDispose /export:Interface_IBabyInit /export:Interface_IBabyLoop
Подробнее здесь: https://stackoverflow.com/questions/795 ... mpile-time
Как профилировать время компиляции ⇐ C++
Программы на C++. Форум разработчиков
1741933218
Anonymous
Со временем время компиляции проекта увеличилось. Но я не знаю, где самое длинное время компиляции. Один из них компилируется в EXE и заботится о платформе и рендеринг с OpenGL. Другой собирает DLL и обрабатывает большую часть моего прикладного бизнеса, например, рисование пользовательского интерфейса и данных обработки. Затем EXE загрузит часть DLL во время выполнения. Часть EXE имеет только 1000 строк кода, в то время как часть DLL имеет 3000 строк кода (NO, включая общий CPP) < /p>
. src = "https://i.sstatic.net/jfu3lqd2.png"/>
exected and stare -andpep share and exed and exed andpep share andpep share and exected cared andpper and share share and extred and share share and extep and extep and exected and share share andped and share share and extamed. Часть EXE действительно уменьшается до 0,4 секунды, DLL имеет едва ли какого -либо заметного эффекта < /p>
Также код написан в стиле процедурных C, поэтому нет сумасшедших вещей, таких как шаблоны, объекты или наследство
Единственное различие, которое я могу видеть в двух переводах. Компилятор работает и почему время компиляции так отличается. Я хотел бы знать, что кто -то сталкивается с этим, и как они справляются с этими < /p>
РЕДАКТИРОВАТЬ:
Пример кода из exe part < /p>
glActiveTexture(GL_TEXTURE0 + ImageSlot);
glBindTexture(GL_TEXTURE_2D, AppData->WhiteTestTexture.id);
glUniform1i(ShaderInput->UniformLocation[SUL_Texture0], ImageSlot);
ImageSlot++;
GL_DEBUG_ASSERT;
rlUpdateVertexBuffer(AppData->RectVertexBufferBlock, AppData->RectVertexData, VertexCount * sizeof(Vector4), 0);
rlUpdateVertexBuffer(ShaderInput->VertexBufferHandle[VB_ColorBuffer], AppData->RectColorData, VertexCount * sizeof(Vector4), 0);
rlUpdateVertexBuffer(ShaderInput->VertexBufferHandle[VB_TexCoordBuffer], AppData->RectTexCoordData, VertexCount * sizeof(Vector2), 0);
rlUpdateVertexBufferElements(AppData->RectIndexBuffer, AppData->RectIndexData, AppData->RectIndexDataCount * sizeof(unsigned int), 0);
glDrawElements(GL_TRIANGLES, AppData->RectIndexDataCount, GL_UNSIGNED_INT, 0);
rlDisableVertexArray();
rlDisableVertexBuffer();
rlDisableVertexBufferElement();
< /code>
Некоторые вызовы RL были просто оберткой или прямыми вызовами GL < /p>
Команда сборки:
exe: < /p>
cl -w -Zi /source-charset:utf-8 /MD /Gm- ..\code\d_main.cpp raylib.lib /link user32.lib opengl32.lib winmm.lib gdi32.lib shell32.lib ole32.lib comdlg32.lib /libpath:..\lib /out:DAPP.exe
< /code>
dll: < /p>
cl /source-charset:utf-8 -w -Zi /Gm- /MD ..\code\d_interface.cpp raylib.lib -LD /link /PDB:DSourceInterface_%timestamp%.pdb /dll user32.lib opengl32.lib winmm.lib gdi32.lib shell32.lib ole32.lib comdlg32.lib /libpath:..\lib /out:DSourceInterface.dll /export:Interface_IBabyDispose /export:Interface_IBabyInit /export:Interface_IBabyLoop
Подробнее здесь: [url]https://stackoverflow.com/questions/79508272/how-to-profile-compile-time[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия