Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.72 MB
Время: -0.962 c
15-1172719059
Slider007
2007-03-01 06:17
2007.03.25
С днем рождения ! 29 февраля


1-1169639469
msgipss
2007-01-24 14:51
2007.03.25
как изменить кодировку ответа web службы


2-1173068076
Tar
2007-03-05 07:14
2007.03.25
Функции и процедуры


3-1167225881
RomanH
2006-12-27 16:24
2007.03.25
Набор данных возвращаемый XП


1-1170324224
DelphiLexx
2007-02-01 13:03
2007.03.25
DBGridEh с возможностью округления Double-полей




   Наверх