Wataru, Мне сейчас пришло осознание, что про 10-15 процентов - это я ошибочно определил, т.к. речь идёт о 2-4% от всех CPU, которых у меня 24 ядра. 2-4% Показывал диспетчер задач:
В профайлере показывает так, но вот Kernel-то меня и смущает? Почему "какой-то" kernel занимает 86%, а программа только 13.5?
Уверен, что 10-15% от ядра, программа не распараллелена, точно однопоточное. Пауз sleep точно нет. Работа с библиотекой GMP/MPFR, но, по моему это не важно, т.к. GMP вполне умеет нагружать как надо. Обращение к памяти вполне может быть очень активным, т.к. много чего делается на std::vector. Но действительно ли это обращение так сильно влияет на производительность? Почему само выделение/освобождение памяти проходит так медленно, с учётом того, что оно сама память по объёму в программе не сильно меняется за время расчёта?
mayton2019, Профиллировщие говорит, что больше всего cpu потребляется вне программы, поэтому я предположил, что может быть тратится время на работу с памятью:
Wataru,
Спасибо за подсказку, не знал такого способа, но ничего подобного не нашёл. Есть ли ещё способ как-то переключить вывод? (Я понял прикол, попробую ещё что-то поискать).
В режиме Debug выводится и 1 и 2, а в режиме Release, только 1. Причём я сделал тестовое консольное приложение в Visual Studio 2022 и в нём выводится 1 и 2 и в режиме Debug и в режиме Release.
Сейчас перевожу свои сообщения на printf и это меня вполне устраивает, т.к. сообщения клиенту всё равно формируются в exception-ах. Консольные сообщения больше нужны для "визуального" анализа в процессе работы, не хотелось париться в форматированием в printf.
brar, Забыл написать, что на моей памяти есть и противоположный пример. Есть такая компания Аскон, о ней я слышал положительный отзыв. Работал в относительно большой проектной компании тыщи на полторы человек, админом. Там внедряли Компас 3D, около двухсот лицензий, лет 25 назад, и тогда было приятное впечатление, что они даже чуть не ночевали с нашими сотрудниками, пока внедряли. Тогда лезли из кожи вон. Сейчас не знаю. )
Так-то у нас на работе шутят, что альтернативой импортному ПО является, не российский аналог или свободное ПО, а "ломанное" импортное ПО.
И дело не в том, что оно отечественное не такое уж и не годное, но вот сколько проблем было, чтобы как-то заставить Autodesk приоткрыть формат и они немного уступили совместимому формату Teiga, но вот заменить Adobe вообще непонятно чем, не особо то их форматы и читаемы, кажется. Может как-то частично и можно их во что-то импортнуть, но если уж если у вас много библиотек внутренних под них, так очевидно, что тут всё плохо.
Это мы ещё про редактирование полигональной графики не вспомнили. Можно было бы вспомнить про тот же Blender (я, кстати, его немного знаю) и мог бы посоветовать его, что в нём можно писать вполне приличные плагины на Python, которые вполне можно было бы попробовать загнать в качестве альтернативы расчётным программам для внутреннего пользования. Обычно пытаются писать сразу на Python и ищут пакеты визуализации под него, но получается в основном в PyPlot, который только для математических расчётов подходит, а уж про генерацию моделей речи не идёт, а вот с Blender вполне может получится неплохая альтернатива расчётным программам, т.к. это визуализатор, в который встроен Python. Т.е. инверсный подход первому случаю, не Python+визуализатор, а Визуализатор+Python. Но это так, личное мнение, просто как пища для размышления ))), а не как альтернатива чему уже устоявшемуся.
Станислав Романов, Вы ошибаетесь! Я далеко не большой специалист по ЯП, но кое что приходится делать. Свой первый ЯП написал вообще на LISP, хотя на тот момент знал C++. Тот ЯП был примитивный, не было циклов, но нашим дизайнерам в то время зашёл на ура (это был интерпретатор для отрисовки фирменных конструкций в автокаде). Что-то близкое к регуляркам. И это тоже ЯП. Отбросьте сомнение, что ЯП - это только что-то монстрообразное типа C++, C#, JAVA, Python. Это может быть и короткий набор инструкций. Есть у меня программа, которые генерит себе код на основе других выражений и сама же их выполняет (есть у меня такой необычный проект. И проект этот смог сделать только я один, потому что никто не знал как к нему подступиться вообще, потешил самолюбие). Поверьте - синтаксический анализ, на котором строится любой ЯП - дикая ахилесова пята программирования. Никто не хочет его изучать, а он нужен много где.
VoidVolker,
Нене. Я слишком часто качаю всякие исходники и знаю во что иногда может вылиться совет:
>> Серьезно? Скачать исходники...
Что-то похожее иногда пишется к кликбейтных заголовках "Надо всего лишь скачать исходники..." )))
Вы мне помогли съэкономить время. Я вам благодарен. Серьёзно. )
VoidVolker, Получается, что сложно получить эту строку. Я её лучше руками наберу из атрибутов, тем более это только для внутренних логов. Не стоит пока так глубоко копать ради сиюминутной задачи. Спасибо за подсказки.
Василий Банников,
>>а для чего?
Тоже для отладки, например, при логировании. Мне он больше нравится, чем самому руками набивать такую большую строку.
Так вроде получается, что нельзя? Или можно где-то посмотреть, как определён этот атрибут? По F12 не отображает в декомпилированной версии:
Василий Банников Спасибо. Я понял. Только в моём случае требуется использовать Kestrel как self-hosted компонент. Если он входит в состав SDK, то как мне его "загнать" в свой проект? Я согласен даже переделать проект на .NET/Standard:
Но как подключить aspnetcore к проекту? Сейчас все компоненты, связанные с ASPNET выглядят как deprecated:
В профайлере показывает так, но вот Kernel-то меня и смущает? Почему "какой-то" kernel занимает 86%, а программа только 13.5?