VladimirS Опубликовано 14 мая, 2015 Поделиться Опубликовано 14 мая, 2015 Подскажите, насколько сильно зависит время создания формы от количества контролов на ней? Для меня это очень важно, потому что я для создания "резинового макета" и центровки позиций контролов использую много TLayout-ов с выравниванием. Цитата Ссылка на комментарий
0 StrangerMX Опубликовано 14 мая, 2015 Поделиться Опубликовано 14 мая, 2015 Чем больше, тем дольше. Для меня тоже пока большой секрет как увеличить быстродействие загрузки формы. Цитата Ссылка на комментарий
0 haword Опубликовано 15 мая, 2015 Поделиться Опубликовано 15 мая, 2015 было около 10 табов на каждом по тулбару листвью пару тройку кнопок и все сие чудо грузилось около 5-7 секунд высвечивая черный экран Цитата Ссылка на комментарий
0 Syb Опубликовано 15 мая, 2015 Поделиться Опубликовано 15 мая, 2015 попробуйте генерить динамически после загрузки основной формы))) Цитата Ссылка на комментарий
0 haword Опубликовано 15 мая, 2015 Поделиться Опубликовано 15 мая, 2015 ага все работает в рекламе а на деле танцы с бубном Цитата Ссылка на комментарий
0 Syb Опубликовано 16 мая, 2015 Поделиться Опубликовано 16 мая, 2015 очень сыровато все этого не отнять, я думаю раз своих мощностей не хватает довести до ума компоненты хотя бы, можно как то сообщество стимулировать, давать хотя бы бесплатно лицензию энтузиастам , которые могут чет допиливать и предложения какие то рабочие выдвигать... Тормоза от избыточности кода , не оптимизировано наверное создание , тащит за собой кучу java классов на всякий случай. zairkz 1 Цитата Ссылка на комментарий
0 masmat Опубликовано 13 января, 2016 Поделиться Опубликовано 13 января, 2016 (изменено) Может кто подскажет. Запускаю приложение на iPhone, открываю всякие там формы, делаю выборки из БД, показываю и скрываю объекты. Если это делается первый раз, то это как-то медленно все выполняется, Если такая операция выполнялась ранее, то она выполняется быстро. То ли приложение постепенно выгружается в оперативку и оттуда работает, то ли я не пойму куда копать. Изменено 13 января, 2016 пользователем masmat Цитата Ссылка на комментарий
0 d7d1cd Опубликовано 13 января, 2016 Поделиться Опубликовано 13 января, 2016 Может кто подскажет. Запускаю приложение на iPhone, открываю всякие там формы, делаю выборки из БД, показываю и скрываю объекты. Если это делается первый раз, то это как-то медленно все выполняется, Если такая операция выполнялась ранее, то она выполняется быстро. То ли приложение постепенно выгружается в оперативку и оттуда работает, то ли я не пойму куда копать. Это происходит по той же причине, по какой, например, MS Word первый раз грузится относительно долго, а после его закрытия и повторного открытия загрузка происходит значительно быстрее. Цитата Ссылка на комментарий
0 masmat Опубликовано 13 января, 2016 Поделиться Опубликовано 13 января, 2016 Может кто подскажет. Запускаю приложение на iPhone, открываю всякие там формы, делаю выборки из БД, показываю и скрываю объекты. Если это делается первый раз, то это как-то медленно все выполняется, Если такая операция выполнялась ранее, то она выполняется быстро. То ли приложение постепенно выгружается в оперативку и оттуда работает, то ли я не пойму куда копать. Это происходит по той же причине, по какой, например, MS Word первый раз грузится относительно долго, а после его закрытия и повторного открытия загрузка происходит значительно быстрее. Все это понятно, но блин как-то это все раздражает Цитата Ссылка на комментарий
0 masmat Опубликовано 13 января, 2016 Поделиться Опубликовано 13 января, 2016 (изменено) Ситуация: Есть Form1, на ней есть ListView, в который загружается список значений одного из полей БД SQLLite. По нажатию на Item, производится выборка SQL запросом из БД. Результат выборки 1 строка. Далее свойство Text (или Cells у StringGrid) компонентов (Label - 6 шт., Button - 4 шт., StringGrid - 7х3, Memo - 1 шт.) на Form2 заполняются значениями из полей БД, выбранной записи. После этого вызывается Form2.Show; Поведение: Если открывать разные Item-ы, то в первые 3-4 раза открытия формы Form2 производится задержка до 4 секунд. Потом всё открывается быстро. Дополнительно: Закрытие формы Form2 процедурами Close или скрытие Hide, не влияет на скорость. Форма Create создается на этапе запуска приложения. Вопрос: Что за поведение такое? Есть ощущение, что iOS убивает форму Form2 и создает её заново, но после того как форма была открыта несколько раз, он перестает это делать. Я понимаю, если бы я первый раз открывал форму и при этом создавая её, но она то уже создана. Я даже отключал весь процесс заполнения данными, просто открываю форму, с незаполненными компонентами. Все равно такое же поведение. P.S. на Андроиде такое не наблюдается. Изменено 13 января, 2016 пользователем masmat Цитата Ссылка на комментарий
0 bigjorj Опубликовано 14 января, 2016 Поделиться Опубликовано 14 января, 2016 А не думали что это задержка при обращении к БД? Особенно на это указывает что задержка исчезает не сразу - возможно срабатывает кэширование записей БД. Я выношу всю работу с БД в отдельный поток и индикацией загрузки на форме. Форму если она часто вызывается лучше один раз создать, потом просто скрывать и отображать. B еще чисто по ощущениям - фрейм создается быстрее. Сейчас стараюсь вместо форм использовать фреймы с динамическим созданием. И еще не забывайте про отрисовку стилей - http://fire-monkey.ru/topic/1495-tmultiview-kak-izbezhat-zaderzhki-pri-pervom-poiavlenii-tmultivie/?hl=preloadcontent#entry7293 . Цитата Ссылка на комментарий
0 masmat Опубликовано 14 января, 2016 Поделиться Опубликовано 14 января, 2016 (изменено) А не думали что это задержка при обращении к БД? Особенно на это указывает что задержка исчезает не сразу - возможно срабатывает кэширование записей БД. Я выношу всю работу с БД в отдельный поток и индикацией загрузки на форме. Форму если она часто вызывается лучше один раз создать, потом просто скрывать и отображать. B еще чисто по ощущениям - фрейм создается быстрее. Сейчас стараюсь вместо форм использовать фреймы с динамическим созданием. И еще не забывайте про отрисовку стилей - http://fire-monkey.ru/topic/1495-tmultiview-kak-izbezhat-zaderzhki-pri-pervom-poiavlenii-tmultivie/?hl=preloadcontent#entry7293 . 1. Думал про БД. Даже делал специально выборку всех данных в одном запросе, что бы положить в память. Но не помогает. Если Вы заметили, я писал, что отключал получение данных, все равно форма открывается первые 3-4 раза долго. 2. Выносите БД в отдельный поток - буду признателен, если поделитесь как это сделать. Может поможет. 3. "Форму если она часто вызывается лучше один раз создать, потом просто скрывать и отображать." - я так же писал, что она создается один раз и потом не закрывается, а скрывается через Hide, т.е. она не уничтожается P.S. За ссылку спасибо Изменено 14 января, 2016 пользователем masmat Цитата Ссылка на комментарий
0 XXXXXX Опубликовано 14 января, 2016 Поделиться Опубликовано 14 января, 2016 Попробуйте использовать этот модуль. При помощи него можете выполнять действие в отдельном потоке. Использование: procedure StartAsyncThread; begin Run(TAsyncTask, procedure(ATask: IAsyncTask) begin //что делать end, procedure(ATask: IAsyncTask) begin //Что делать после завершения end); end; AsyncTask.zip Цитата Ссылка на комментарий
0 masmat Опубликовано 14 января, 2016 Поделиться Опубликовано 14 января, 2016 Попробуйте использовать этот модуль. При помощи него можете выполнять действие в отдельном потоке. Использование: procedure StartAsyncThread; begin Run(TAsyncTask, procedure(ATask: IAsyncTask) begin //что делать end, procedure(ATask: IAsyncTask) begin //Что делать после завершения end); end; Спасибо. Сейчас буду пробовать. По результатам обязательно отпишусь Цитата Ссылка на комментарий
0 masmat Опубликовано 14 января, 2016 Поделиться Опубликовано 14 января, 2016 Вообщем странные всё эти тормоза. Новый проект, 2 формы, создаются автоматически. На каждой форме по несколько контролов (панель, лабель) Запуск 15 секунд до открытия первой формы. Другие же приложения могут быстро запускаться, почему из под Delphi они так медленно запускаются? Есть у кого-нибудь мысли? Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 14 января, 2016 Модераторы Поделиться Опубликовано 14 января, 2016 (изменено) вот такой способ например создаём сплеш-форму пустую, на OnActivate формы выполняем Application.CreateForm(наши формы....) убираем все формы с автокреата, кроме сплеш-форм Изменено 14 января, 2016 пользователем ZuBy Цитата Ссылка на комментарий
0 masmat Опубликовано 14 января, 2016 Поделиться Опубликовано 14 января, 2016 (изменено) вот такой способ например создаём сплеш-форму пустую, на OnActivate формы выполняем Application.CreateForm(наши формы....) убираем все формы с автокреата, кроме сплеш-форм Время запуска не изменилось. Заставка запуска так и висит 15-16 секунд, потом все быстро запускается, что я даже не успеваю увидеть сплэш-форму. Вот как уменьшить момент показа черного экрана? Я ставил туда типовую картинку от Delphi, потом поставил туда свою картинку, на которой написано типа "Идет загрузка, подождите пожалуйста", но блин ждать 15 секунд на запуск приложения это много. Потом скорость работы приложения меня устраивает, но вот сам запуск очень смущает Изменено 14 января, 2016 пользователем masmat Цитата Ссылка на комментарий
0 masmat Опубликовано 14 января, 2016 Поделиться Опубликовано 14 января, 2016 Вообщем добился я результата в 4 секунды запуска, т.е. показа черного экрана заставки. Для достижения этого нужно было всего лишь оставить на форме один Button. Сокращение времени загрузки происходило при удалении компонентов Label. Получилось 1 Label = 1 секунда. Цитата Ссылка на комментарий
0 Vitaldj Опубликовано 14 января, 2016 Поделиться Опубликовано 14 января, 2016 Вообщем добился я результата в 4 секунды запуска, т.е. показа черного экрана заставки. Для достижения этого нужно было всего лишь оставить на форме один Button. Сокращение времени загрузки происходило при удалении компонентов Label. Получилось 1 Label = 1 секунда. Это что то новое)))) Цитата Ссылка на комментарий
0 masmat Опубликовано 14 января, 2016 Поделиться Опубликовано 14 января, 2016 Вообщем добился я результата в 4 секунды запуска, т.е. показа черного экрана заставки. Для достижения этого нужно было всего лишь оставить на форме один Button. Сокращение времени загрузки происходило при удалении компонентов Label. Получилось 1 Label = 1 секунда. Это что то новое)))) Вот и я теперь не знаю куда копать. На Андроиде всё приложение запускается за 6-8 секунд, в зависимости от аппарата. А на iOs это же приложение за 30 секунд. Пришлось начать писать проект под iOS с "нуля" и наткнулся сразу на эту проблему. И это только несколько компонентов и 2 формы. А дальше еще БД есть и т.д. с этим связанное. Цитата Ссылка на комментарий
0 masmat Опубликовано 14 января, 2016 Поделиться Опубликовано 14 января, 2016 А есть у кого-нибудь присутствующих опыт разработки на XCode? Хочется понимать, есть ли там такие проблемы с тормозами при запуске? Цитата Ссылка на комментарий
0 Cody71727172 Опубликовано 16 января, 2016 Поделиться Опубликовано 16 января, 2016 А есть у кого-нибудь присутствующих опыт разработки на XCode? Хочется понимать, есть ли там такие проблемы с тормозами при запуске? Определенно нет, сами подумайте XCode - официальный инструмент для разработки от Apple. По аналогии с Google и их Android Studio - там и компилируется, и запускается, и в общем плане быстродействия всё НАМНОГО быстрее. Просто потому, что родное Равиль Зарипов (ZuBy) и zairkz 2 Цитата Ссылка на комментарий
0 haword Опубликовано 17 января, 2016 Поделиться Опубликовано 17 января, 2016 точно больше никаких обработок не делаешь в OnCreate OnShow? точно не открываешь в DataModule никакой базы данных запросом не индекисруемым? Вот одна форма 5 лейблов и одна кнопка и больше ничего и никаких обработок грузится все это 5 секунд? у меня был такой косяк когда на форме было намного больше компонентов, около 30, тогда загрузка шла 5 секунд на ХЕ7. пришлось из все раскидать по другим формам. Цитата Ссылка на комментарий
0 masmat Опубликовано 17 января, 2016 Поделиться Опубликовано 17 января, 2016 точно больше никаких обработок не делаешь в OnCreate OnShow? точно не открываешь в DataModule никакой базы данных запросом не индекисруемым? Вот одна форма 5 лейблов и одна кнопка и больше ничего и никаких обработок грузится все это 5 секунд? у меня был такой косяк когда на форме было намного больше компонентов, около 30, тогда загрузка шла 5 секунд на ХЕ7. пришлось из все раскидать по другим формам. Это новый проект, там точно ничего не было в Create и Show. У меня появилась одна догадка в чем может быть дело, но пока не могу утверждать это. Когда на форме много компонентов и ты начинаешь их удалять, то в файлах проекта остаются от них следы. Такое наблюдалось у меня при удалении компонент: TabControl, ImageList, Image, Grid-ы После того, как я удалил все строки во всем проекте касающиеся созданию этих удаленных контролов, так сразу скорость работы увеличилась. Эксперименты продолжаются Цитата Ссылка на комментарий
0 Модераторы Andrey Efimov Опубликовано 17 января, 2016 Модераторы Поделиться Опубликовано 17 января, 2016 Из моего опыта: На скорость также влияет количество подключаемых юнитов, т.е. иногда бывает так, что вы кинули компонент на форму (среда автоматом подключает необходимые юниты), а потом передумали и удалили его, но среда не почистила список юнитов. Я лично наблюдал такую ситуацию, приложение тоже долго грузилось, когда вручную почистил список юнитов, всё встало на свои места. masmat и zairkz 2 Цитата Ссылка на комментарий
0 masmat Опубликовано 17 января, 2016 Поделиться Опубликовано 17 января, 2016 Из моего опыта: На скорость также влияет количество подключаемых юнитов, т.е. иногда бывает так, что вы кинули компонент на форму (среда автоматом подключает необходимые юниты), а потом передумали и удалили его, но среда не почистила список юнитов. Я лично наблюдал такую ситуацию, приложение тоже долго грузилось, когда вручную почистил список юнитов, всё встало на свои места. Да да, с этим вообще беда Цитата Ссылка на комментарий
Вопрос
VladimirS
Подскажите, насколько сильно зависит время создания формы от количества контролов на ней?
Для меня это очень важно, потому что я для создания "резинового макета" и центровки позиций контролов использую много TLayout-ов с выравниванием.
Ссылка на комментарий
32 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.