![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
VMT
MM_ASH © (2008-05-13 09:39:00)Привет! Я новичок в КОЛ, хотел бы выяснить такой вопрос, в документации об этом ничего не нашел..
Вот, скажем, потоки не наследуются от абстрактного класса потока, а используют указатели на методы разных реализаций потоков (файловые строковые), которые забиваются в объект на стадии вызова конструктора. Это все работает в одном классе PStream, то же самое и с PControl. Объясните пожалуйста чем вызван такой подход, мне кажеться что это несколько медленнее (при вызове указателя на функцию), чем если бы это было сделано традиционное наследование с перегрузкой. Единственный полезный эффект как я понял это уменьшение VMT, но это наверное стольо микроскопичный выигрышь что не понятно ПОЧЕМУ же так сделал автор :-)
MM_ASH (2008-05-13 14:23:00) [1]:-)
Значит без указателей на метод все же быстрее...
Ладно спасибо!
А по второму вопросу есть мысли?
>>как размер VMT сказывается на быстродействии? Т.е. есть ли связь в скорости выполнения программы и глубиной дерева наследования ее классов.
D[u]fa (2008-05-13 12:56:00) [2]прямой ответ - сделано все, что может уменьшить размер..
MM_ASH (2008-05-13 11:53:00) [3]>>Дмитрий К
понятно почему так сделано - для того что бы отсекать не используемый код.. но там нет прямого ответа на мои вопросы..
Дмитрий К (2008-05-13 11:46:00) [4]
> MM_ASH
"Идеологическое FAQ" читал?
http://kolmck.net/docs/rart001.htm
MM_ASH (2008-05-13 11:25:00) [5]2D[u]fa
Если говорить конкретно то разница получается в один лишний CALL
И вот еще вопрос.. как размер VMT сказывается на быстродействии? Т.е. есть ли связь в скорости выполнения программы и глубиной дерева наследования ее классов.
MM_ASH (2008-05-13 11:07:00) [6]2D[u]fa
Мне здается что медленнее.. ты конечно же смотрел асм того что получается на выходе для вызова указателя на метод и для виртуального метода?
Книжку я читал.. но на много ли это уменьшает размер, в соотношении к неудобству разработки?
D[u]fa (2008-05-13 09:56:00) [7]ну а сделали все чтоб уменьшить размер.. читай книгу про КОЛ
D[u]fa (2008-05-13 09:55:00) [8]медленне вызвать метод по указателю? %) не знал