назад в настройках оптимизации) - результаты точно такие же
.... наверное нужно рандомный характер обращений как-то задействовать
Boris имеешь ввиду весь массив в кеше? тогда рандомное обращение ничего не даст? Нужно ещё один слой косвенности добавить - массив указателей? но это уже будет больше наверное про скорость доступа к памяти, а не про стоимость виртуализации?
я имею в виду, что VMT и адрес нужной функции сидят в L1 кэше и доступ к ним очень быстрый
емаё, ну ок, лады ) возможно я тогда перезаморочился 😄 ну пусть тогда этот сегодняшний вопрос https://t.me/Delphi_Lazarus/334082 будет просто загадкой как можно так сделать )
Инициализируй классовую переменную процедурного типа в конструкторе, и дергай её из метода. Только это premature optimization
это не заинлайнишь, а моё решение позволяет заинлайнить и в задаче, словами это не говорится, но в тексте программы директива inline имеется
хотя... на счёт заинлайнишь/не заинлайнишь я уже не уверен... может компилятор умён и сумеет сделать это даже для процедурной переменной
Хз насчёт инлайна, но обвязки вызова виртуально го метода точно не будет. И хз как на там на лазаре в кодогенерации будет
не будет обвязки вызова виртуального метода - зато будет аналогичное чтение из переменной и вызов по этому адресу, что тоже самое и есть практически что и вызов виртуального метода, разве нет?
Обсуждают сегодня