Добавили бы они еще возможность очистить кэш Идеи или, еще лучше, делать это автоматически если Идея неактивна и компьютером не пользуются (оставлен на ночь).
При работе с большими проектами Идея со временем начинает подтормаживать всё больше и больше. Однако если почистить её папку с кэшем файлов (а он у меня иногда под 3Гб вырастает), то Идея начинает работать ощутимо быстрее. Хотя проект она после чистки будет открывать несколько дольше.
Поэтому сейчас приходится чистить вручную 1-2 раза в неделю.
По-хорошему нужно закрыть Идею, почистить кэш и открыть идею обратно. Но из-под Идеи у меня может быть оставлен запущенным проект (Glassfish + Jetty, оба в режиме отладки). В итоге нужно остановить Jetty, раздеплоить проект, остановить Glassfish, закрыть Идею, очистить кэши, запустить Идею, запустить Glassfish, задеплоить проект, запустить Jetty. Так что с маленьким скриптом тут не очень.
Все правильно, кэши таким образом удалять нельзя =) Более того, идея не должна позволить Вам этого сделать. А вообще, кеши стоит удалять только в экстренных случаях. С кэшами точно быстрее нежели чем без них. Чтобы это понять, давайте рассмотри самый простой пример использования кэшей. Все вы знаете, что вставки комментариев типа
public void init() {
//TODO Vasya: don't forget to implement this method
}
Этот и остальные TODO можно увидеть, если перейти в ToolWindow (TODO) Alt+6. Теперь представьте, что мы бы каждый раз сканировали все java сорцы на предмет TODO прежде чем их нарисовать??? Дорого! Поэтому индексатор для TODO единожды обходит java файлы и говорит где находяться TODO, Далее индексатор вызывается только для тех файлов, которые изменились (в том числе и offline). Преимущества индексов очевидны, хотя я привел самый простой пример использования индексов.
Я прекрасно понимаю, для чего Идее нужны файлы кэшей и файлы индексов — без них весь её могучий функционал и не реализуешь. Но факт остается фактом: если в проекте много изменяющегося или, как у меня, динамически генерируемого кода, то со временем в кэше оказывается чертова куча файлов, которые уже реально не существуют (это мое предположение). В результате даже когда ты пытаешься использовать банальный банально просто набирать код, то Идея постоянно замирает на небольшой промежуток времени, который постоянно растет.
Как я уже сказал — в таких случаях помогает только ручная чистка кэшей. После этого ВСЕ операции (поиск классов, TODO, автодополнение и проч.) работают намного быстрее.
Если есть предложения как достигнуть этого без чистки кэшей, то я готов вас выслушать ;)
Хмм… А можно поподробней, что за динамически генерируемый код? Просто цифра в 3Gb реально ломает мозг… У меня проект ~ 3.2 миллиона строк (около 45000 джава классов) и кэш составляет примерно 1.2Gb (все плагины включены) Поэтому такое недоумение… Может какой левый плагин, который использует функционал индексов из open-api?
Ну у меня на Core quad с четырьмя гигабайтами оперативки, наш проект, после чистки кеша, открывается 3-4 минуты. Правда, столь долгое время загрузки появилось после перехода на восьмую идею — она кеширует javascript файлы. В общем, фича, честно говоря, сомнительной полезности. :)
Кстати, проверьте настройки вашей идеи, потому как у меня кеш за полгода вырос всего до 2Гб.
На самом деле это так кажется, что индексация JavaScript занимает много времени (или попросту тормозит). Просто ДжаваСкрипту не повезло. Он индексируется последним под прогресс баром. И поэтому когда все уже закончили индексироваться (в том числе и JS) вы видете надпись на прогресс баре о том, что мол индексируется JS, а на самом деле ИДЕЯ уже совсем другим занимается… Скорее всего записью на диск или типа того. Но если у вас есть js, который вызывает тормоза, то шлите разработчикам… Они то точно обрадуются =)
это вообще не «фича» — это внутренние подробности архитектуры IDE. И необходим он именно для того чтобы было возможно все что вы находите в ней полезным.
Огромный респект ребятам из JetBrains
По сравнению с теми же Адоби(а)вцеми которые геттеры/сеттеры годами делают в Flex Builder производительность Идейцев просто космическая.
Поддержка флекс в 8.1 просто сказка. По работе требуется Groovy/Grails — это вообще не передаваемо. Html/Js — вкуснотища.
Кстати еще польза багрепортов — мне ДАЛИ лицензию идею за активный фидбэк.
Главное — Идея понимает синтксиc MXML/AS3, а не выводит ошибки компиляции как билдер.
Как следствие Идея предлагает совсем другой уровень работы с кодом.
Как следствие — всякие там рефакторинги, иконки override/implements. Живые темплейты. Работа с inline-xml и regexp. Предложения по улучшению кода. Генераторы — конструктор, toString. Навигация по коду.
В общем все в традициях Идеи — умная и помогает работать.
Идея до сих пор не умеет работать с Flex-CSS. Стили как mxml-атрибуты идея понимает, а CSS атрибуты путает с хтмл-ными.
Не хватает интеграции с FlexUnit прямо из идеи — нужна панелька результатов тестов прямо в Идее.
Нет поддержки E4X.
Присутствуют и баги конечно. Как же без них. Но баги фиксятся очень быстро. Главное о них сообщать. Разница между 8.0 и 8.1 по ошибкам и фичам колоссальная. А прошло несколько месяцев.
>smart complete в смысле? угу, что странно.
ну сами идеевцы говорили, что этого пока нету.
>Кстати для List list = new List() както для не-для-груви :)
согласен, но первое пришедшее в голову String s = new String() — это даже не-для-java
>И кстати методы листа идея комплитит даже когда duck typing
и не только листа, кстати ;)
более того, она умеет даже
def o = []
list.add()
o=«string»
o.substring()
IntelliJ IDEA 8.1 released