|
"Амперметр"
|
|||
---|---|---|---|
#18+
Раньше я немного пользовался AQTime для Delphi, в частности для оптимизации кода. AQTime в теории должен показывать участки кода, которые надо оптимизировать. Но я не очень верю в этот подход, потому что для измерения скорости нужно ставить в коде счётчики, а счётчики сами отнимают ресурсы. Мне интуитивно кажется что такие вещи, как работа счётчиков, необходимо контролировать самому. Ещё, к примеру, код от AQTime может что-то поменять в кэше (насколько я знаю), а для оптимизации это важно. Поэтому я написал такой объект на Delphi: Код: Delphi 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
Код: Delphi 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Когда программа отработала, projectspeedmanager сохранил текстовой файл отчёт, из которого я узнал, что код между тагами 1 и 2 занял 68% всего времени, а код между тэгами 2 и 3 – 31% времени. Соответственно теперь я знаю, что для оптимизации нужно прежде всего ускорить функцию CalculateQPartR, и в ней я также могу разместить тэги в разных её участках, чтобы узнать какие участки самые проблемные, потом разместить тэги и в них и т.д. Также projectspeedmanager сообщил мне, что выполнение всего кода между StartSession и FinalizeSession заняло 82% всего времени работы программы, точнее кода, который вызывал эту функцию CalculateQPartR (я и сам знал что функция CalculateQPartR лимитирующая, но на всякий случай полезно такие вещи проверять). Это пока работает скорее в самых простых случаях, а мне придётся ещё приспосабливать мой амперметр для более сложных вариантов, например когда часть счётчиков находится внутри цикла, а часть за его пределами. Возможно тут будут нужны какие-то вложенные сессии, каждая со своим набором счётчиков. В дальнейшем мне, возможно, потребуется сделать ещё вот что: “прокалибровать” мой амперметр, чтобы знать, сколько времени отнимает вызов счётчиков, и учесть это в пересчёте процентов, отданных каждому участку кода. Можете подсказать, как аналогичный объект будет выглядеть на C/C++? А вы не пробовали сами написать такой объект? ... |
|||
Модератор:
Нравится:
Не нравится:
|
|||
06.06.2019, 21:36 |
|
"Амперметр"
|
|
---|---|
#18+
начал ты хорошо, с великого Дельфи но в конце скатился к мерзким Сям Поэтому осиновй кол тебе в жопу, и хуй на вороток ... |
|
Гарыныч сказал - Гарыныч спиздел
#деда#ослег#подослали на чём бы я не осуществлял бы или осуществлял бы, объяснял бы или не объяснял бы, СОСТОЯНИЕ СИТУАЦИИ ВСЁ РАВНО ОТ ЭТОГО НЕ ИЗМЕНИЛОСЬ БЫ (с) Кикки Модератор:
|
|
06.06.2019, 21:39 |
|
"Амперметр"
|
|||
---|---|---|---|
#18+
defecator 06.06.2019, 21:39 начал ты хорошо, с великого Дельфи но в конце скатился к мерзким Сям Поэтому осиновй кол тебе в жопу, и хуй на вороток ... |
|||
Модератор:
Изменено: 08.06.2019, 20:03 - Droog
Нравится:
Не нравится:
|
|||
08.06.2019, 20:02 |
|
"Амперметр"
|
|||
---|---|---|---|
#18+
Droog 06.06.2019, 21:36 А вы не пробовали сами написать такой объект? ... |
|||
Модератор:
Нравится:
Не нравится:
|
|||
08.06.2019, 20:12 |
|
"Амперметр"
|
|||
---|---|---|---|
#18+
Шли дефекатора нахуй и делай свою программу как тебе нравится. ... |
|||
Модератор:
Нравится:
Не нравится:
|
|||
08.06.2019, 21:17 |
|
"Амперметр"
|
|||
---|---|---|---|
#18+
Не сходить с Делфи ... |
|||
Зачем платить психотерапевту, если его можно придумать, и разговаривать с ним совершенно бесплатно?
Модератор:
Нравится:
Не нравится:
|
|||
09.06.2019, 13:29 |
|
|
start [/forum/topic.php?fid=2&fpage=4&tid=30733]: |
0ms |
get settings: |
12ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
123ms |
get forum data: |
3ms |
get page messages: |
138ms |
get tp. blocked users: |
2ms |
others: | 19ms |
total: | 342ms |
0 / 0 |