|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
Всем привет. Прошу поделиться опытом, кто как решает(решил) подобную нестыковку. В чем у меня сложности: В приложении всего 3 формы. Но куча фреймов и работа с базой данных.Фреймы грузятся в зависимости от конфигурации, потому и исследовать даже проблематично - по одной конфикурации вроде быстро показывется, а в другой тормоза на минуту. Картинки есть, но тащятся из ресурсов. Еще очень много таймеров. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 10:36 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
найти медленные запросы и что-то с этим сделать: 1) ускорить запросы 2) отложить во времени, например по требованию пользователя 3) выполнять запросы в фоновом режиме фаэрволл иногда замедляет выполнение запросов, но это доли секунды ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 10:58 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
svd, 1. Делать логику как можно более простой, без задержек и сложных алгоритмов; 2. По возможности не обращаться к БД при запуске. 2.1. Если такой возможности нет - уменьшить кол-во запросов до минимума, а так же - оптимизировать эти запросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 10:58 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
Не выполнять запросы при старте ПО или при открытии формы. Как минимум сократить кол-во тяжелых операций до минимума. Не использовать Data-Aware компоненты. Если это не возможно - сделать сплэш скрин с прогресс-баром во время первичной загрузки. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 11:21 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
1. Сплэшскрин есть, но раздражает именно задержка старта и людям просто плевать, что пишется в сплэше. 2. Совет с запросами к базе держу в голове, но не так то просто ее решить: часть данных из базы так же является конфигурацией или влияет на порядок/видимость кнопок (например). А видимость так же зависит от размера других контролов на экране и т.п. тоже не так просто, но надо попробовать решить ребус. сначала запускается "старая форма" (есть клиенты, которые привыкли к гвоздику и слазить с лавочки не хотят, да и техникам удобней пользоваться старой версией при настройке), затем если в ini стоит вызов к touch-версии, то поверх нее показывается новая форма, а старая скрывается. Новая форма со старой использует часть таймеров (в любой момент опреатор может преключить на старую форму и изменить что то там) кто нибудь пробовал такие вещи использовать: - ассинхронные процедуры; - threads. - что то еще. какие нюансы, на что обратить внимание, какие грабли при этом раскиданы? По идее должно помомочь - в thread я создавал форму, но с небольшим количеством элементов, а тут еще и запросы к базы делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 11:44 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
svd часть данных из базы так же является конфигурацией или влияет на порядок/видимость кнопок (например) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 11:57 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
svd 2. Совет с запросами к базе держу в голове, но не так то просто ее решить: часть данных из базы так же является конфигурацией или влияет на порядок/видимость кнопок (например). А видимость так же зависит от размера других контролов на экране и т.п. тоже не так просто, но надо попробовать решить ребус. svd в thread я создавал форму В общем, раз с потоками не работал - сейчас не время начинать. Для начала - переделай несколько запросов на один и ускорь его. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 11:58 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
@_Vasilisk_ Запрос не один единственный, и не один. Вызываться могут хранимые процедуры, в которх коллега делал какието довольно сложные вычисления и от различной конфигурации могут идти от миллисекунд, до несолькох секунд. Но это с тем, счем придется мириться. Сейчас главное выбрать пути с вероятностью улучшения. @YuRock ПС: должен я напоминать о правилах в форуме? под спойлером проект для курения написанныйза 2 минуты. Выкладывать видео на youtube с процессом запуска? Код: pascal 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 13:02 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
svd под спойлером проект для курения написанныйза 2 минуты. svd Код: pascal 1. 2. 3. 4. 5. 6.
svd : часть данных из базы так же является конфигурацией svd в которых коллега делал какие-то довольно сложные вычисления ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 13:06 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
svd Прошу поделиться опытом, кто как решает(решил) подобную нестыковку. 1. Засечь, что именно подтормаживает 2. Ускорить это 3. Если сработало: Профит 4. Иначе: Забить либо Оптимизировать ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 13:25 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
@_Vasilisk_, и то, и другое. Он сейчас объяснил, что делал там перерасчет элементов старой версии и версии в которой этого небыло. Ну а выходом являются коэффициенты. По его задумке "перавый раз" может выполняться медленно, а потом уже быстро. Но этот кусок уже несуществинен - только что его перенес всекцию создания то запросу клинетов. На 3 или 4 секунды вроде лучше стало(судя по логам). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 13:34 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
svd ПС: должен я напоминать о правилах в форуме? под спойлером проект для курения написанныйза 2 минуты. Выкладывать видео на youtube с процессом запуска? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 13:56 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
svd Код: pascal 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 13:59 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
Так тоже в основном потоке? Код: pascal 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 14:04 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
svd Так тоже в основном потоке? Код: pascal 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 14:15 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
svdТак тоже в основном потоке? Чудак, может, ты уже откроешь справку по Synchronize?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 14:16 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
YuRock svd Код: pascal 1. 2.
Потрясающий шедевр! Восхитительно! Нет слов! Как можно что-то программировать, совершенно не понимая что ты делаешь? Хотел было ссылку дать на свой учебник по многопоточному программированию для начинающих, но вижу, что до уровня "начинающий" ещё дойти нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 14:21 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
DmSer Как можно что-то программировать, совершенно не понимая что ты делаешь? Хотел было ссылку дать на свой учебник по многопоточному программированию для начинающих, но вижу, что до уровня "начинающий" ещё дойти нужно. Мне на этом форуме уже объяснили, что это называется известным термином "Судорожное программирование". ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 15:15 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
svd , опытом не делятся, он даётся в процессе. А на нестыковки уже указали ) DmSerХотел было ссылку дать на свой учебник по многопоточному программированию ... Не читал, но рекомендую ) Но таки да, там у тебя очень много буков, а у ТС очень много таймеров - наверное, не подружатся. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 15:26 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
А что тут было то? Я всё пропустил? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 16:42 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
Barmaley57 А что тут было то? Я всё пропустил? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 16:45 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
Рустам слишком быстро работает))) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2021, 16:51 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
svd, Не очень понял логику построения загрузки (без потоков и т.д.) просто логику программы. 1. У тебя есть 2 интерфейса: старый и новый. Их загрузка обеспечена наличием флага в ini-файле. 2. Тогда ты вроде как должен следовать логике и загружать либо старый, либо новый интерфейс, но не 2 сразу. 3. Если человек захотел переключиться в другой интерфейс (для чего это?), то ты выгружаешь текущий и загружаешь другой. 4. Действительно загрузка конфигурации - это секунды. Ты должен загрузить меню, но не данные. Данные нужно грузить потом, когда пользователь выберет, что он хочет. 5. Если ты грузишь, например, какие-то состояния, статистику, то сделай выставку данных с обновлением на сервере через N-минут и в зависимости от готовности данных перегружай ее на клиент в сжатом виде (диаграммы, групповая инфо), в онлине свести большие объемы данных проблематично и долго. 6. Я просто желаю тебе задуматься над построением логики, а потом уже прибегнуть к потокам. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2021, 02:29 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
svd Фреймы грузятся в зависимости от конфигурации, потому и исследовать даже проблематично У Вас какое-то нелепое представление об исследовании. Судя по всему, оно заключается в сидении с умным видом и плевании в потолок в ожидании озарения. Для исследования торможений используется несколько стандартных инструментов: а) Профайлер. Показывает кучу полезной информации о том, какой код сколько раз выполнялся и сколько времени это заняло б) Монитор/трассировщик. Показывает обмен между клиентом и БД и опять-таки - сколько времени какой из запросов занимал в) Лог-файл. Для наколеночного исследования можно руками записывать начало-конец операций и видеть, сколько времени они занимали. "Фреймы грузятся в зависимости от конфигурации" не вносит в применение этих инструментов никакой существенной специфики. Дело житейское. rgreat Не использовать Data-Aware компоненты. Какие ещё нелепые советы будут? Чтобы сразу оптом. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2021, 03:45 |
|
Delphi ускорение запуска приложения.
|
|||
---|---|---|---|
#18+
softwarer rgreat Не использовать Data-Aware компоненты. Какие ещё нелепые советы будут? Чтобы сразу оптом. Data-Aware хороши, если их норм использовать, а иногда пользователи войдя в такой компонент, блокируют надолго запись, если напрямую редактировать таблицу, и блокировки..., разве не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2021, 04:04 |
|
|
start [/forum/topic.php?fid=58&msg=40115171&tid=2036826]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 292ms |
total: | 432ms |
0 / 0 |