Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.75 MB
Время: 0.096 c
2-1173010622
Roman_S
2007-03-04 15:17
2007.03.25
Как учесть клавишу "BACKSPACE"?


15-1172930690
Servelat
2007-03-03 17:04
2007.03.25
Ключевое слово "object"


1-1167998676
LFeather
2007-01-05 15:04
2007.03.25
плейлист как в WinAMP е


11-1151791408
Александра
2006-07-02 02:03
2007.03.25
dll : вторая форма и выгрузка.


15-1172600124
Kerk
2007-02-27 21:15
2007.03.25
За что я люблю Perl





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский