Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
150 / 73 / 27
Регистрация: 09.04.2010
Сообщений: 297
1

Производительность DLL

30.07.2012, 12:29. Просмотров 550. Ответов 6
Метки нет (Все метки)

Привет всем, у меня вопрос по производительности подключения DLL-ки по сравнению с чтением из файла.

В программе использую небольшую бд (набор массивов "std::vector<>"), которые один раз заполняю, а после вытягиваю из них данные. Для этого сделал класс интерфейс.
Поскольку запись данных типа vector<> в файл нужно реализовывать отдельно. Придумал сделать dll-ку в которой сохранить всю структуру класса бд и один глобальный константный объект.

Суть вопроса: что будет быстрее работать использование dll-ки (посредством ::LoadLibrary() получить указатель на константный объект) или сохранять этот объект в файл и подгружать из файла.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.07.2012, 12:29
Ответы с готовыми решениями:

Точка входа в процедуру InterlockedCompareExchange64 не найдена в библиотеке DLL KERNEL32.DLL
День добрый! При запуске моей программы (много моего кода + много разных сторонних dll) на WinXP...

Добавление своей dll в список dll подгружаемых процессом чужого процесса
Вообще вопрос такой,как можно внедрить свою dll в список Import чужого не запущенного процесса?Не...

Запись из внедренной dll в другую dll этого процесса
main.cpp #include &lt;Windows.h&gt; extern int writeprocess(); DWORD WINAPI MainThread(LPVOID...

Dll файл в exe файле. Вшить dll libcurl
Проблема такая что приходится таскать всегда libcurl.dll с собой. Надо все носить в одном exe....

6
Эксперт С++
8297 / 6051 / 602
Регистрация: 10.12.2010
Сообщений: 28,133
Записей в блоге: 26
30.07.2012, 15:50 2
А как вы собираетесь изменять данные БД если она будет в DLL и вообще какой смысл использования DLL ?
0
150 / 73 / 27
Регистрация: 09.04.2010
Сообщений: 297
30.07.2012, 16:17  [ТС] 3
Изменять данные я как раз и не хочу. Т.е. буду только один раз при сборке DLL.
БД у меня "константная".

Цитата Сообщение от Avazart Посмотреть сообщение
и вообще какой смысл использования DLL
Смысл в том, чтобы не заморачиматься с записью отдельно каждого элемента в файл, а сохранить целиком весь объект.

Может я не прав. Потому и задал вопрос.
0
Эксперт С++
8297 / 6051 / 602
Регистрация: 10.12.2010
Сообщений: 28,133
Записей в блоге: 26
30.07.2012, 16:19 4
Почему не вписать в ресурсы или тупо "впечатать" в программу?
0
150 / 73 / 27
Регистрация: 09.04.2010
Сообщений: 297
30.07.2012, 16:40  [ТС] 5
Цитата Сообщение от Avazart Посмотреть сообщение
или тупо "впечатать" в программу
это можно, но...
Хотелось бы повторно использовать эту длл-ку. т.к. она будет вызываться несколькими программками.
По-моему в этом случае длл будет загружена все один раз. Поэтому и встал вопрос, что будет быстрее один раз загрузить длл или несколько раз из данные из файла?
0
Эксперт С++
8297 / 6051 / 602
Регистрация: 10.12.2010
Сообщений: 28,133
Записей в блоге: 26
30.07.2012, 16:49 6
т.к. она будет вызываться несколькими программками.
В таком случае да есть смысл.

Наверное рациональность использования будет зависить от размера файла.
1
Делаю внезапно и красиво
Эксперт С++
1309 / 1224 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
30.07.2012, 19:30 7
Цитата Сообщение от FireNovel Посмотреть сообщение
а сохранить целиком весь объект
Используй сериализацию. Вариант с файлом более гибкий, чем с dll, но dll легко упаковать PePack'ом или аналогичной программой. Если размер объекта большой, то можно вообще не загружать его в память, а использовать отображение файла в память.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.07.2012, 19:30

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Отсутствует libstdc++-6.dll и libgcc_s_sjlj-1.dll при компиляции
Открыл на ноутбуке VS 2019, ни одна программа не компилируется, выдает ошибку с отсутствием файлов...

Как узнать путь к загруженной DLL из самой DLL?
Создаю небольшую программку в папке c:/test/app/, есть DLL в папке c:/test/dll/. В коде самой...

Как узнать зависимость DLL-ки от других DLL-ек?
Есть DLL-ка, она в свою очередь подгружает другие DLL-ки, а так же использует соответственно...

Не загружается DLL. Правила написания DLL
Добрый день! Вопрос в следующем. Есть код на Си++ с применением классов, раскиданных по нескольким...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.