Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.25;
Скачать: CL | DM;

Вниз

Free()   Найти похожие ветки 

 
Loginov Dmitry ©   (2007-02-28 22:16) [120]

> Тут в соседней ветке Алекс Коншин пишет про исключения -
> почитай, оно интересно


Интересно конечно. Постараюсь в эти технологии трассировки стэка вникнуть поскорее.
Но хотелось бы ответа на вопрос [118].


 
Аноним   (2007-03-01 00:12) [121]


> Постараюсь в эти технологии трассировки стэка вникнуть поскорее.
>  

Если вникнешь, надобность ответа на [118] отпадет сама собой


 
Loginov Dmitry ©   (2007-03-03 12:12) [122]

Потратил весьма много времени на надлежащее изменение исходников Matrix32. Были учтены все советы и критика, имевшая место в данной ветке. Работа с исключениями улучшена (причем коренным образом). Многие функции по-прежднему обернуты в try...except, однако смысл такой обертки меняется в зависимости от директивы условной компиляции RecreateEObj. Если директива включена, то объект исключения пересоздается, причем в текст исключения может быть добавлена отладочная информация. Если директива выключена, то оператор try...except компилируется как:

try
....
except
  on E: Exception do
    raise;
end;


То есть фактически получаем Stack frame, который к тому же может быть очень полезным при использовании отладочных средств (jcl, библиотека отладки от Алекса Коншина). Также при выключенной опции RecreateEObj размер ехе-шника уменьшается примерно на 5 Кбайт.

Также немало внимания было уделено оформлению кода. Теперь код Matrix32, я считаю, вполне соответствует общепризнанным стандартам.

Ссылка также:

http://matrix.kladovka.net.ru/download.php?getfilename=uploads/heart/matrix32.zip

Интересно было бы узнать, чем же теперь библиотека недотягивает до open-source - инструментария? (Кроме недостатка в объемах тестирования)


 
euru ©   (2007-03-03 12:53) [123]


> Loginov Dmitry ©   (03.03.07 12:12) [122]
Сразу скажу, исходники я не смотрел. Но как по типу исключения Exception программа определит, что именно вызвало исключение?


 
Loginov Dmitry ©   (2007-03-03 12:56) [124]

Есть тип исключения. Есть текст исключения. Есть стек вызовов. Что еще нужно?


 
Ketmar ©   (2007-03-03 13:31) [125]

интересные люди.
except
 raise;
end;

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


 
Loginov Dmitry ©   (2007-03-03 13:58) [126]

от D7 не удаляет. А вообще - не принципиально. Пусть хоть удаляет. Stack frames всегда можно и в опциях проекта включить.


 
Ketmar ©   (2007-03-03 14:07) [127]

точно так же, как и отладчик. в этом случае нафиг нужны трассировки?


 
Loginov Dmitry ©   (2007-03-03 21:22) [128]

А кстати: GUID для определения живочести ссылки рулит не по децки (глобальный список вообще курит в стороне), если создать миллиончик объектов TMatrix (в гуидами это добро создается на секунду, с глобальным списком - не менее часа) (это так, навеяло веткой http://delphimaster.net/view/15-1172930690/) :))
P.S. [122] пост проигнорили конкретно :(


 
Loginov Dmitry ©   (2007-03-03 21:26) [129]

Хотя вру все-таки. Убрал проверку IndexOf, и скорость стала одинаковой :)



Страницы: 1 2 3 4 вся ветка

Текущий архив: 2007.03.25;
Скачать: CL | DM;

Наверх




Память: 0.74 MB
Время: 0.068 c
15-1172479233
vajo
2007-02-26 11:40
2007.03.25
Проводник тормозит в сети


15-1172872547
Владмир
2007-03-03 00:55
2007.03.25
лицензирование Delphi 6


1-1169793749
GrayFace
2007-01-26 09:42
2007.03.25
Нормальный аналог Shell Controls


9-1145744242
Алгоритм
2006-04-23 02:17
2007.03.25
Кто из мастеров знает GLScnene?


15-1172728307
db2admin
2007-03-01 08:51
2007.03.25
Turbo Delphi регистрация