-
Нашел тут очень интересную статью от Gunsmoker, которая пролетела мимо меня, но из которой я много чего узнал нового . http://www.gunsmoker.ru/2013/05/modern-delphi.htmlК примеру то, что на ARM DisposeOf хотя и вызывает деструктор, но не освобождает память выделенную под объект (зомби объект). А также то что использовать конструкции try finally для уничтожения объектов фактически уже и не надо (на ARM). А также то что Assigned вместе с FreeAndNil тоже потеряли смысл - так как объект все равно будет существовать, даже если он в состоянии "зомби".
-
Этим дурацким ARC поломали совместимость. Потом опомнились и напридумывали костылей вроде DisposeOf. В общем, богомерзко все это :(
-
Kerk © (06.03.17 01:42) [1]
C другой стороны таким образом уменьшили количество Access Violation - т.к. объект то не уничтожается, даже с DisposeOf. Т.е. при обращении к полям такого класса после DisposOf, после деструктора, не вылезет AV. Хотя может это и хуже, т.к. программист не увидит AV.
А статью почитайте, там не только про это. К примеру там еще интересное наблюдение: TstringList vs TDictionary.
Поиск в отсортированном TstringList (бинарный поиск) в несколько раз медленнее чем поиск TDictionary, который последовательно перебирает, но использует хэш.
-
> Хотя может это и хуже, т.к. программист не увидит AV. однозначно хуже. руки бы им по отшибать.
-
> TDictionary, который последовательно перебирает
С чего он вдруг последовательно перебирает? Последовательный перебор в хэш таблице будет только при наличии коллизий и то, только для тех значений, которые создают коллизии и то среди небольшого числа элементов таблицы.
-
> программист не увидит AV
AV был изначально придуман программистами совсем не для того, чтобы впоследствии придумывать способы помочь ламерам избежать его. AV - это благо, позволяющее получить предупреждение о том, что программа работает некорректно до того, как её некорретная работа привела к необратимым последствиям
-
Хорошо, что нам ARC не грозит. Я не верю в приложения для мобильных устройств, написанные на Delphi, а под Win32/Win64 ARC пока не используется.
Впрочем, в языках с встроенным управлением памятью всех этих конструкций нет с самого начала и никому это не мешает.
> Поиск в отсортированном TstringList (бинарный поиск) в несколько > раз медленнее чем поиск TDictionary, который последовательно > перебирает, но использует хэш.
Это я даже не комментирую, потому что неверно с первого до последнего слова.
-
> Игорь Шевченко © (06.03.17 10:53) [6] > Я не верю в приложения для мобильных устройств, написанные > на Delphi,
Старовер чтоль? А почему? Ведь они уже работают, и вполне хорошо, за исключением некоторых специфических, типа online захвата видео c камеры с 25 fps. Плюс Delphi в том что можно сделать одним кодом и для iOS и для Android, где еще такое найдешь, не Xamarin aka Mono же использовать.
> DVM © (06.03.17 10:17) [4] > > > TDictionary, который последовательно перебирает > > С чего он вдруг последовательно перебирает?
Ну я когда трассировал его, он перебирал последовательно. А как он перебирает, сортирует что-ли? Там нету сортировки ведь.
-
-
> Кто б сомневался © (06.03.17 20:04) [7] >> DVM © (06.03.17 10:17) [4]>>> TDictionary, который последовательно перебирает >> С чего он вдруг последовательно перебирает? > Ну я когда трассировал его, он перебирал последовательно. > А как он перебирает, сортирует что-ли? Там нету сортировки ведь. В стандартной реализации с линейным опробованием он перебирает элементы, попавшие в один кластер (группу последовательных занятых ячеек). Есть улучшенный вариант реализации с упорядоченным хранением, когда перебирается только часть элементов кластера с "похожими" хешами. Пример реализации и немного теории: http://guildalfa.ru/alsha/node/32
-
Кто б сомневался © (06.03.17 20:46) [8]
Мне слабо верится во взлет Delphi под Linux и вообще, под что-то иное, кроме Win32/64.
Под Win32 успех Delphi был (был!), потому что они попали в эту нишу давно, и первые версии отличались не таким числом багов, а все другие ниши к текущему моменту уже заняты сложившейся культурой, куда Delphi с багом на баге продираться будет не слишком легко. Все это мое приватное, не претендующее на истину, мнение, разумеется
-
Я вот, вполне успешно, портировал довольно толстый проект на лазаря + линукс, не думаю, что делфи будет хуже лазаруса.
-
> Игорь Шевченко © (06.03.17 10:53) [6] > > Хорошо, что нам ARC не грозит. Я не верю в приложения для > мобильных устройств, написанные на Delphi
Не читал, не знаю и потому не верю?
-
Дмитрий Белькевич © (07.03.17 00:29) [11]
Будет хуже, потому что за него денег просят, в отличие от Лазаруса.
-
ну что же, посмотрим, что они там выкатили.
|