Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
scorpion235
Member

Откуда:
Сообщений: 49
Список DataSet'ов

1. TJvMemoryData
Разработчик: сообщество JEDI Visual Component Library (JCL + JVCL)
JCL (версия 2.8)
JVCL (версия 3.50)
Официальный сайт: http://jvcl.delphi-jedi.org/

2. TMemTableEh
Разработчик: EhLib
Версия: 9.0.040
Официальный сайт: http://www.ehlib.com/

3. TdxMemData
Разработчик: DevExpress
Версия: 15.2.2
Официальный сайт: https://www.devexpress.com/

4. TkbmMemTable
Разработчки: Components4Developers
Версия: 7.74.00 Professional Edition
Официальный сайт: http://www.components4developers.com/

Параметры сравнения DataSet'ов
1. Вставка записей
2. Сортировка записей

Более подробно в моей статье https://geektimes.ru/post/298725/
9 мар 18, 14:35    [21246026]     Ответить | Цитировать Сообщить модератору
 Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
scorpion235
Member

Откуда:
Сообщений: 49
Извиняюсь, пост здесь: https://geektimes.ru/post/298893/
9 мар 18, 14:37    [21246030]     Ответить | Цитировать Сообщить модератору
 Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
scorpion235
Member

Откуда:
Сообщений: 49


К сообщению приложен файл. Размер - 8Kb
9 мар 18, 14:46    [21246048]     Ответить | Цитировать Сообщить модератору
 Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 262
а DevExpress и EhLib разве не платные?
9 мар 18, 14:51    [21246052]     Ответить | Цитировать Сообщить модератору
 Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
edruzenko
Member

Откуда: Одесса
Сообщений: 202
после фразы
"Но воспользоваться TkbmMemTable можно только с Delphi XE2."
доверие к замерам сильно упало
9 мар 18, 15:15    [21246076]     Ответить | Цитировать Сообщить модератору
 Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
scorpion235
Member

Откуда:
Сообщений: 49
qwertEHOK, только JvMemoryData - бесплатный DataSet
9 мар 18, 16:28    [21246147]     Ответить | Цитировать Сообщить модератору
 Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
Кроик Семён
Member

Откуда: СПб --> Dortmund
Сообщений: 6251
scorpion235,

  • Раньше работал с TClientDataSet.
  • Потом один проект был, где нужена была поддержка SQL, воспользовался TSQLMemTable (http://www.aidaim.com/in-memory_sql_database_delphi.htm)
  • В последние годы для простых случаев пользуюсь TVirtualTable (https://www.devart.com/virtualdac)

    Странно, что два последних в сравнение не включили. Вроде известные компоненты.
  • 9 мар 18, 16:32    [21246153]     Ответить | Цитировать Сообщить модератору
     Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
    Кроик Семён
    Member

    Откуда: СПб --> Dortmund
    Сообщений: 6251
    P.S.
    Кстати, вроде бы есть еще возможность для этих целей воспользоватьСя SQLite'ом. Если не ошибаюсь, именно таким был in-memory Dataset в AnyDAC'e
    9 мар 18, 16:37    [21246157]     Ответить | Цитировать Сообщить модератору
     Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
    scorpion235
    Member

    Откуда:
    Сообщений: 49
    Кроик Семён
    Странно, что два последних в сравнение не включили. Вроде известные компоненты.
    Не слышал о таких DataSet'ах, посмотрю. Devart точно должен качественный продукт сделать.
    Возможно в будущем напишу более развернутую статью. Так же нужно подумать как расширить
    список требований для сравнения.
    9 мар 18, 17:15    [21246180]     Ответить | Цитировать Сообщить модератору
     Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
    rgreat
    Member

    Откуда:
    Сообщений: 4388
    Странное сравнение.

    В нем отсутствует референс. TClientDataSet.
    9 мар 18, 17:20    [21246183]     Ответить | Цитировать Сообщить модератору
     Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
    rgreat
    Member

    Откуда:
    Сообщений: 4388
    Да и TFDMemTable неплохо было-бы добавить.
    9 мар 18, 17:21    [21246184]     Ответить | Цитировать Сообщить модератору
     Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
    Кроик Семён
    Member

    Откуда: СПб --> Dortmund
    Сообщений: 6251
    Express edition of TVirtualTable and TVirtualDataSet от Devart еще и бесплатные
    9 мар 18, 17:23    [21246186]     Ответить | Цитировать Сообщить модератору
     Бесплатная утилита для реиндекса для MS SQL Express (и не только)  [new]
    qwertEHOK
    Member

    Откуда: Волгоград
    Сообщений: 262
    а так же неплохо бы увидеть код и добавить еще 1-2 СУБД
    9 мар 18, 17:54    [21246220]     Ответить | Цитировать Сообщить модератору
     Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
    scorpion235
    Member

    Откуда:
    Сообщений: 49
    qwertEHOK
    а так же неплохо бы увидеть код и добавить еще 1-2 СУБД

    Скорость работы с СУБД не рассматривается
    9 мар 18, 18:07    [21246238]     Ответить | Цитировать Сообщить модератору
     Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
    scorpion235
    Member

    Откуда:
    Сообщений: 49
    Кроик Семён
    TSQLMemTable (http://www.aidaim.com/in-memory_sql_database_delphi.htm)
    Посмотрел этот DataSet
    1. Метод LoadFromDataSet отсутствует
    2. Ручная загрузка данных около 6,8 сек
    3. Метода для сортировки данных нет
    9 мар 18, 18:30    [21246257]     Ответить | Цитировать Сообщить модератору
     Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
    scorpion235
    Member

    Откуда:
    Сообщений: 49
    Кроик Семён
    TVirtualTable (https://www.devart.com/virtualdac)

    Поставил этот компонент, метода LoadFromDataSet нет, методов для сортровки полей нет.
    Судя по описанию компонент не особо подходит для загрузки данных из базы данных:
    The TVirtualDataSet component is data wrapper that doesn't store data in memory and interacts
    with data using event handlers. It allows to represent arbitrary data (arrays, lists, objects, etc.)
    as TDataSet descendants and link it with any DB-aware components to display data or modify it.

    В демках этот компонент отображает данные из TList
    9 мар 18, 19:49    [21246343]     Ответить | Цитировать Сообщить модератору
     Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
    чччД
    Guest
    scorpion235,

    а какова цель исследования? Ну, вот компонент А быстрее чем компонент Б, выяснили. И что?
    9 мар 18, 20:24    [21246375]     Ответить | Цитировать Сообщить модератору
     Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
    Кроик Семён
    Member

    Откуда: СПб --> Dortmund
    Сообщений: 6251
    scorpion235
    Кроик Семён
    TSQLMemTable (http://www.aidaim.com/in-memory_sql_database_delphi.htm)
    Посмотрел этот DataSet
    1. Метод LoadFromDataSet отсутствует
    2. Ручная загрузка данных около 6,8 сек
    3. Метода для сортировки данных нет


    Есть у него всё. По-другому только называется.
    А что насчет сортировки, он же SQL!
    Т.е. работает select * from ... order by
    9 мар 18, 20:50    [21246415]     Ответить | Цитировать Сообщить модератору
     Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
    ma1tus
    Member

    Откуда:
    Сообщений: 559
    scorpion235
    Кроик Семён
    TVirtualTable (https://www.devart.com/virtualdac)

    Поставил этот компонент, метода LoadFromDataSet нет
    Assign

    scorpion235
    методов для сортровки полей нет
    IndexFieldNames

    scorpion235
    Судя по описанию компонент не особо подходит для загрузки данных из базы данных:
    The TVirtualDataSet component is data wrapper that doesn't store data in memory and interacts
    with data using event handlers. It allows to represent arbitrary data (arrays, lists, objects, etc.)
    as TDataSet descendants and link it with any DB-aware components to display data or modify it.

    В демках этот компонент отображает данные из TList
    Это другой компонент.
    9 мар 18, 20:57    [21246424]     Ответить | Цитировать Сообщить модератору
     Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
    YuRock
    Member

    Откуда: Донецк
    Сообщений: 3562
    scorpion235
    Судя по описанию компонент не особо подходит для загрузки данных из базы данных
    Век живи - век учись.
    Оказывается, никогда бы не подумал, MemDataset'ы нужны для загрузки данных из БД.
    9 мар 18, 21:00    [21246426]     Ответить | Цитировать Сообщить модератору
     Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
    Dimitry Sibiryakov
    Member

    Откуда:
    Сообщений: 45919

    YuRock
    никогда бы не подумал, MemDataset'ы нужны для загрузки данных из БД.

    Ну это модно, стильно, молодёжно. Прогревает процессор и пожирает память, чем ускоряет
    гибель человечества и обновление парка компьютеров на предприятии.

    Posted via ActualForum NNTP Server 1.5

    9 мар 18, 21:05    [21246433]     Ответить | Цитировать Сообщить модератору
     Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
    Гаджимурадов Рустам
    Member

    Откуда:
    Сообщений: 59218
    Dimitry Sibiryakov
    Все они проигрывают простому array of record.

    Дегтярев Евгений
    пузомерка
    если уменьшить кол-во данных в 10-100 раз, то разница во времени для пользунов станет сильно не существенна
    9 мар 18, 23:17    [21246533]     Ответить | Цитировать Сообщить модератору
     Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
    vavan
    Member

    Откуда: Казань
    Сообщений: 3107
    у арефьева есть проект-бенч для насилования датасетов. в свое время довертел свой cds/vmidas что он на некоторых задачах обгонял лидера kbmmt
    12 мар 18, 10:41    [21248768]     Ответить | Цитировать Сообщить модератору
     Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
    Мимопроходящий
    Member

    Откуда: бурятский тундрюк, эсквайр
    Сообщений: 29168

    я понял! (С)

    это новый адепт секты свидетелей Вострикова...

    Posted via ActualForum NNTP Server 1.5

    12 мар 18, 12:09    [21249114]     Ответить | Цитировать Сообщить модератору
     Re: Delphi: самый быстрый DataSet (TJvMemoryData, TMemTableEh, TdxMemData, TkbmMemTable)  [new]
    Cheese)))
    Member

    Откуда: Местный
    Сообщений: 494
    scorpion235,

    автор
    2. TMemTableEh
    Разработчик: EhLib
    Версия: 9.0.040

    Старая У вас версия, вы бы свежую взяли, там чутка ускорили убрав FindField на каждую запись из LoadFromDataSet. Нужно еще отказаться от инциализации кэша фиелдов если записей нет и тогда будет более оптимально.

    Сортировка могла бы быть быстрее если бы например дважды каждое значение не проверяли бы функциями IsEmpty, IsNull - я указал Диме об этом, но он более важными вещами занят.

    По моем тестам TVirtualDataSet уделывает EhLib раз в 10 по скорости, что печалит меня.
    12 мар 18, 13:54    [21249662]     Ответить | Цитировать Сообщить модератору
    Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
    Все форумы / Delphi Ответить