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

Вниз

VMT   Найти похожие ветки 

 
MM_ASH   (2008-05-13 09:39) [0]

Привет! Я новичок в КОЛ, хотел бы выяснить такой вопрос, в документации об этом ничего не нашел..
Вот, скажем, потоки не наследуются от абстрактного класса потока, а используют указатели на методы разных реализаций потоков (файловые строковые), которые забиваются в объект на стадии вызова конструктора. Это все работает в одном классе PStream, то же самое и с PControl. Объясните пожалуйста чем вызван такой подход, мне кажеться что это несколько медленнее (при вызове указателя на функцию), чем если бы это было сделано традиционное наследование с перегрузкой. Единственный полезный эффект как я понял это уменьшение VMT, но это наверное стольо микроскопичный выигрышь что не понятно ПОЧЕМУ же так сделал автор :-)


 
D[u]fa   (2008-05-13 09:55) [1]

медленне вызвать метод по указателю? %) не знал


 
D[u]fa   (2008-05-13 09:56) [2]

ну а сделали все чтоб уменьшить размер.. читай книгу про КОЛ


 
MM_ASH   (2008-05-13 11:07) [3]

2D[u]fa
Мне здается что медленнее.. ты конечно же смотрел асм того что получается на выходе для вызова указателя на метод и для виртуального метода?
Книжку я читал.. но на много ли это уменьшает размер, в соотношении к неудобству разработки?


 
MM_ASH   (2008-05-13 11:25) [4]

2D[u]fa
Если говорить конкретно то разница получается в один лишний CALL
И вот еще вопрос.. как размер VMT сказывается на быстродействии? Т.е. есть ли связь в скорости выполнения программы и глубиной дерева наследования ее классов.


 
Дмитрий К ©   (2008-05-13 11:46) [5]


> MM_ASH

"Идеологическое FAQ" читал?
http://kolmck.net/docs/rart001.htm


 
MM_ASH   (2008-05-13 11:53) [6]

>>Дмитрий К
понятно почему так сделано - для того что бы отсекать не используемый код.. но там нет прямого ответа на мои вопросы..


 
D[u]fa   (2008-05-13 12:56) [7]

прямой ответ - сделано все, что может уменьшить размер..


 
MM_ASH   (2008-05-13 14:23) [8]

:-)
Значит без указателей на метод все же быстрее...
Ладно спасибо!
А по второму вопросу есть мысли?
>>как размер VMT сказывается на быстродействии? Т.е. есть ли связь в скорости выполнения программы и глубиной дерева наследования ее классов.



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

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

Наверх




Память: 0.48 MB
Время: 0.012 c
2-1260038741
Леонид Артюхов
2009-12-05 21:45
2010.01.24
Как Конвертировать Строку в Картинку?


15-1258146808
POOP
2009-11-14 00:13
2010.01.24
Редакторы кода в несколько колонок.


2-1260118363
inkakas
2009-12-06 19:52
2010.01.24
Error creating form: line too long on line 74092


15-1258639913
@!!ex
2009-11-19 17:11
2010.01.24
Подскажите головоломок не слишком сложных


2-1251710046
Zalm
2009-08-31 13:14
2010.01.24
TIdCmdTCPServer