Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Ускорение работы IDE


Автор: Akella 29.10.2009, 09:53
тут разговор зашёл....

Цитата(ivashkanet @  19.10.2009,  09:58 Найти цитируемый пост)
P.S. И еще, типа хинт и реклама большого объема оперативки: Во время компиляции идет большое количество обращений к диску, что сильно влияет на скорость. Так люди советуеют следующий финт ушами -- создается диск в оперативной памяти (есть утилитки) и мапиться на папки obj и bin проекта (Visual Studio) скрость возрастает в разы. 


Это получается RAM-диск? Диск в памяти? Нужен не мап, а именно перенос файлов с физ. диска в память, на виртуальный диск. 

1. А как бы это с Delphi проделать?
2. Диск какого объёма требуется создавать?


Автор: ivashkanet 29.10.2009, 11:34
Цитата(Akella @  29.10.2009,  09:53 Найти цитируемый пост)
Это получается RAM-диск? Диск в памяти? Нужен не мап, а именно перенос файлов с физ. диска в память, на виртуальный диск. 

Надо смотреть. Я как-то просматривал статью на тему увеличения скорости билда. Вот и отметил. Но сам не пробовал.

Автор: Akella 29.10.2009, 11:39
Ведь если переносить на виртуальный диск библиотеки, то настройки в дельфи нужно менять. Неизвестно, как среда поведёт себя после изменения путей к либам на нестандартные.

Автор: CodeMonkey 29.10.2009, 11:40
http://www.joelonsoftware.com/items/2009/03/27.html.

Автор: ivashkanet 29.10.2009, 11:53
Akella, нет, библиотеки переносить не нужно. Переносятся только временные файлы (папка obj) и результаты сборки (папка bin). Т.е. именно то, что часто изменяется при билде. Особенно это касается папки obj в которой хранятся промежуточные результаты сборки.

CodeMonkey, спасибо за статью. Именно этот SSD я себе беру. Жаль что он не ускоряет билд :( 

Автор: Akella 29.10.2009, 11:56
Цитата(ivashkanet @  29.10.2009,  11:53 Найти цитируемый пост)
Переносятся только временные файлы (папка obj) и результаты сборки (папка bin).

речь идёт не об MSVS, а о Delphi

Автор: ivashkanet 29.10.2009, 11:58
Интересная статья: http://www.dotneat.net/CommentView,guid,b8219b2b-77a2-4ef5-94c3-976356e81770.aspx

Результаты:
Цитата

A Microsoft Visual Studio .NET 2005 solution with 26 projects (Windows Forms and Windows library projects mainly), in C#. 
    Desktop machine:
    a) Compilation on hard disk (no RAM Drive installed yet): 72 seconds*
    b) Compilation on a 500 MB RAM Drive : 71 seconds*
    Laptop machine:

    a) Compilation on hard disk (no RAM Drive installed yet): 65 seconds*
    b) Compilation on a 400 MB RAM Drive : 32 seconds*

    *(average of three compilations)

Seems like my desktop doesn't have much processor power, and the bottleneck is mainly on the CPU, since there is not much different results on readig from a 50 Mb/seconds hard disk or from a 900 MB/second one (the RAM Drive)

Т.е. не для каждой машины это работает

Добавлено @ 11:59
Цитата(Akella @  29.10.2009,  11:56 Найти цитируемый пост)
речь идёт не об MSVS, а о Delphi 

и чё? Она не создает временные файлы? Сразу все в памяти компилит?

Чтобы не менять настройки проекта -- делается симлинк (вроде так) на RAM диск



Вот классная инфа. Именно по Делфи.
http://stackoverflow.com/questions/920560/delphi-how-to-organize-source-code-to-increase-compiler-performance

Автор: Akella 29.10.2009, 15:32
Цитата(ivashkanet @  29.10.2009,  11:58 Найти цитируемый пост)
и чё? Она не создает временные файлы? Сразу все в памяти компилит?

а я не знаю  smile 

Проблема в дельфи не с компилятором. Компилирование в дельфи достаточно быстрое. Наверное, самый быстрый компилятор.
Проблема с доводчиком (знатоком) кода (Code Insight). Когда ставишь точку или нажимаешь Ctrl+Пробел, то дельфи очень сильно, интенсивно начинает обращаться к диску (особенно в версиях старше 7) и это может занять _сравнительно_ большое время. Иногда даже за десятки секунд переваливало. А хочется, что бы Code Insight показывал выпадающий список хотябы в течение  1-3 секунд.

Автор: CodeMonkey 29.10.2009, 17:02
Наверное, тут всё же сильно индивидуально. 

Узким местом может быть винт, память или процессор. Соответственно и менять/улучшать надо то, что является узким местом. При загрузке ОС, например, узкое место - винт. При компиляции - процессор (ну и иногда память).

Что касается Code Insight, то лично у меня когда Delphi подвисает на нём, то винт обычно не шуршит. Так что, скорей всего, всё упирается в процессор.

Автор: Akella 29.10.2009, 17:22
У меня наоборот - шуршит. А какой у тебя проц? У меня P4 630 HT, и дома и на работе.

Автор: CodeMonkey 29.10.2009, 17:48
Intel Core 2 Duo T9500. Но больших (и уж тем более огромных) проектов у меня нет.

Автор: Akella 29.10.2009, 19:38
а IDE у тебя какой версии?

Автор: CodeMonkey 29.10.2009, 22:21
2009-й.

Автор: Snowy 30.10.2009, 15:42
Ну пошуршит разок, дальше само всё скэшируется.
Заморачиваться из-за этого с виртуальным диском нет смысла.
Это пусть шарпеи заморачиваются - их студия работает в десятки раз тормознутей - им есть из-за чего страдать.
По сравнению с VS, укор Delphi в тормознутости вызывает улыбку smile

Автор: ivashkanet 30.10.2009, 15:57
Цитата(Snowy @  30.10.2009,  15:42 Найти цитируемый пост)
Это пусть шарпеи заморачиваются - их студия работает в десятки раз тормознутей - им есть из-за чего страдать.

 smile 
При всем уважении и нежелании начинать священные войны: харэ пиз..ть!

Автор: Akella 30.10.2009, 16:36
Цитата(Snowy @  30.10.2009,  15:42 Найти цитируемый пост)
Ну пошуршит разок, дальше само всё скэшируется.

Да, есть такое. Но время от времени кеш как бы очищается и, бывает, что опять начинается...

Автор: ViktorXP 4.11.2009, 23:23
У нас на работе dcu собираются на виртуалку. 
если сравнивать то экономится приблизительно треть времени при компиляции. да и реакция Code Insight быстрее.

пс. проект на полтора "ляма" строк. ))

Автор: Alexeis 4.11.2009, 23:35
  Прирост зависит от соотношения производительности жесткого и проца. Я у себя проводил эксперименты, из-за большой нагрузки на проц, время работы диска становиться несущественным. Возможно на современных процах это заметнее, с другой стороны если стоит 12я барракуда со скоростью записи > 100 Мб/с и здоровенным кэшем, то наверное тоже разница будет незаметна. 
  P.S. эксперименты проводил на билдере, анализ С++ несколько сложнее паскалевского, так что возможно на делфи эффект будет больше.

Автор: Akella 4.11.2009, 23:48
У меня ST3250410AS, кеш 16 метров.

Автор: cemick 5.11.2009, 11:56
Цитата(ViktorXP @ 4.11.2009,  23:23)
У нас на работе dcu собираются на виртуалку. 
если сравнивать то экономится приблизительно треть времени при компиляции. да и реакция Code Insight быстрее.

пс. проект на полтора "ляма" строк. ))


Попробовал сейчас использовать RamDisk, эффекта ноль, может быть от завышенных ожиданий показалось даже медленнее. На старом компе P4 2.6 GHz 1 Gb Ram проект собирался минуты полторы, в моменты особого тупняка минуты 3.  Недавно обновили компы на Core Duo E7500 2.93 GHz 4 Gb Ram HDD Seagate ST31500541AS (Baracuda LP 32 метра буфер) время сборки сократилось секунд до 20 максимум, а при хорошей погоде 10. 

Проект ~500000 (плюс еще сторонних пакетов на хорошее количество строк)

Автор: Alexeis 5.11.2009, 12:14
cemick, ну я  ж так и сказал, главный тормоз в компиляции проц. Разница заметна при особых условиях, как то медленный винт (фрагментированный) , большое количество ресурсов (т.е. экзешник большой не от кода, а от данных не требующих особой компиляции), возможно также ускорение если в проекте большие dfm файлы (порядка мегабайт).
  Наверное большего эффекта можно добиться разогнав процессор хотя бы 10% и снизив тайминги на памяти.

Автор: cemick 5.11.2009, 12:49
Alexeis, ну я лишь дополнил слова эмпирическими данными  smile .

Автор: ViktorXP 7.11.2009, 05:17
Цитата(cemick @  5.11.2009,  11:56 Найти цитируемый пост)
(плюс еще сторонних пакетов на хорошее количество строк)

Если в сторонние комопоненты изминений вносится не будет то их можно собрать один раз
Указать делфи на папочку с DCU и отключить все пути где указываются реальные pas-ы
тогда прирост появляется. но также и минус будет (если нужно внести изминения)

работа велась на четирех ядерном пеньку. винт SataII, а вот фирму не помню (это не домашняя машина)
+ файл подкачки выключен полностю (зачем файл подкачки при трех гигах оперативы ))) )

Добавлено через 4 минуты и 19 секунд
Цитата(cemick @  5.11.2009,  11:56 Найти цитируемый пост)
Попробовал сейчас использовать RamDisk, эффекта ноль, может быть от завышенных ожиданий показалось даже медленнее. На старом компе P4 2.6 GHz 1 Gb Ram проект собирался минуты полторы, в моменты особого тупняка минуты 3.  Недавно обновили компы на Core Duo E7500 2.93 GHz 4 Gb Ram HDD Seagate ST31500541AS (Baracuda LP 32 метра буфер) время сборки сократилось секунд до 20 максимум, а при хорошей погоде 10. 

если у тебя одна или две плашки памяти то эфект может получится обратный. 

Автор: Akella 8.11.2009, 10:46
Цитата(ViktorXP @  7.11.2009,  05:17 Найти цитируемый пост)
если у тебя одна или две плашки памяти то эфект может получится обратный.  

Поясни относительно количества планок памяти.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)