Latest post of the previous page:
Верю, ведь и у меня это началось только три дня назад (правда никакой другой софт почему-то не начал тормозить)...А что может быть поломано в системе? Куда рыть дальше?
Latest post of the previous page:
Верю, ведь и у меня это началось только три дня назад (правда никакой другой софт почему-то не начал тормозить)...ну там все эти кучи открытий плагинов — это получение атрибута файла. по нормальному, оно всё кэшируется и должно работать быстро.John Doe wrote:А что может быть поломано в системе? Куда рыть дальше?
Тут вопрос не правильный, надо спрашивать почему в GetPlugin нет бинарного поиска если список то постоянно отсортированный.Andrey Budko wrote:Еще не смог понять, зачем фар при загрузке плагинов сортирует список после добавления каждого, а не один раз в конце?
Конкретно это - не очень. Время затрачиваемое на OpenRegKey() уменьшилось до 10% с 40%, а вот тот патч который ты мне дал только что в ICQ - вот он работает - 1.4%t-rex wrote:Проверь вот это:
Это в общем должно быть тоже самое что сделал ты но в 2 строчки.
Andrey Budko wrote:2. KeyNameToKey()... Там, кстати, небольшую ошибку заметил. Если у клавиши в реестре по неизвестным причинам будет двойной модификатор, например AltAltAdd, то ReplaceStrings(..-1..) удалит оба вхождения Alt, а следующая строчка (Pos+=ModifKeyName.Len) спозиционирует указатель неправильно.
Code: Select all
Index: keyboard.cpp
===================================================================
--- keyboard.cpp (revision 2960)
+++ keyboard.cpp (working copy)
@@ -1579,9 +1579,9 @@
{
if(StrStrI(strTmpName,ModifKeyName[I].Name) && !(Key&ModifKeyName[I].Key))
{
- ReplaceStrings(strTmpName,ModifKeyName[I].Name,L"",-1,TRUE);
+ int CntRepl=ReplaceStrings(strTmpName,ModifKeyName[I].Name,L"",-1,TRUE);
Key|=ModifKeyName[I].Key;
- Pos+=ModifKeyName[I].Len;
+ Pos+=ModifKeyName[I].Len*CntRepl;
}
}
//Pos=strlen(TmpName);
Еще StrStrI не помешает заменить на StrStr, предварительно приведя к одному регистру (в списке модификаторов - статически). А еще лучше - закешировать как-то просчитанные числовые значения кнопкосочетаний, хотя и не особо понятно как это сделать прозрачно. Для вызывающей клавиши можно, например, втупую в скобочках дописывать CtrlAltUp (0x12345678), но это грубо. Сам секвенс сейчас как-то кешируется или каждый раз при старте парсится абсолютно все?Skirda wrote:попробуй вот так
Ок.Andrey Budko wrote:Еще StrStrI не помешает заменить на StrStr, предварительно приведя к одному регистру (в списке модификаторов - статически).
второе.Andrey Budko wrote:Сам секвенс сейчас как-то кешируется или каждый раз при старте парсится абсолютно все?
Ну я имел в виду добавить еще одно поле в структуру и заполнить либо руками либо при стартеSkirda wrote:Разве что держать второй массив....
Тикет уже как бы закрыт, а проблема осталась.alexandr_v wrote:Из последнего SDK, статья "Naming a File"
"
Do not end a file or directory name with a trailing space or a period. Although the underlying file system may support such names, the operating system does not. You can start a name with a period (.).
".
Может надо запретить создавать каталоги с точкой в конце?
Explorer не дает создать такой каталог.