Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
FireNovel
150 / 73 / 8
Регистрация: 09.04.2010
Сообщений: 297
#1

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

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

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

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

Суть вопроса: что будет быстрее работать использование dll-ки (посредством ::LoadLibrary() получить указатель на константный объект) или сохранять этот объект в файл и подгружать из файла.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2012, 12:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Производительность DLL (C++):

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

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

Dll файл в exe файле. Вшить dll libcurl - C++
Проблема такая что приходится таскать всегда libcurl.dll с собой. Надо все носить в одном exe. Enigma Virtual Box использовать нельзя,...

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

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

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

6
Avazart
Нарушитель
Эксперт С++
7230 / 5402 / 291
Регистрация: 10.12.2010
Сообщений: 23,940
Записей в блоге: 17
30.07.2012, 15:50 #2
А как вы собираетесь изменять данные БД если она будет в DLL и вообще какой смысл использования DLL ?
0
FireNovel
150 / 73 / 8
Регистрация: 09.04.2010
Сообщений: 297
30.07.2012, 16:17  [ТС] #3
Изменять данные я как раз и не хочу. Т.е. буду только один раз при сборке DLL.
БД у меня "константная".

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

Может я не прав. Потому и задал вопрос.
0
Avazart
Нарушитель
Эксперт С++
7230 / 5402 / 291
Регистрация: 10.12.2010
Сообщений: 23,940
Записей в блоге: 17
30.07.2012, 16:19 #4
Почему не вписать в ресурсы или тупо "впечатать" в программу?
0
FireNovel
150 / 73 / 8
Регистрация: 09.04.2010
Сообщений: 297
30.07.2012, 16:40  [ТС] #5
Цитата Сообщение от Avazart Посмотреть сообщение
или тупо "впечатать" в программу
это можно, но...
Хотелось бы повторно использовать эту длл-ку. т.к. она будет вызываться несколькими программками.
По-моему в этом случае длл будет загружена все один раз. Поэтому и встал вопрос, что будет быстрее один раз загрузить длл или несколько раз из данные из файла?
0
Avazart
Нарушитель
Эксперт С++
7230 / 5402 / 291
Регистрация: 10.12.2010
Сообщений: 23,940
Записей в блоге: 17
30.07.2012, 16:49 #6
т.к. она будет вызываться несколькими программками.
В таком случае да есть смысл.

Наверное рациональность использования будет зависить от размера файла.
1
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1305 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
30.07.2012, 19:30 #7
Цитата Сообщение от FireNovel Посмотреть сообщение
а сохранить целиком весь объект
Используй сериализацию. Вариант с файлом более гибкий, чем с dll, но dll легко упаковать PePack'ом или аналогичной программой. Если размер объекта большой, то можно вообще не загружать его в память, а использовать отображение файла в память.
1
30.07.2012, 19:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2012, 19:30
Привет! Вот еще темы с ответами:

Обращение к ресурсам DLL из самой DLL - C++
Коллеги, добрый день. Получил следующее задание - Создать библиотеку, DLL назначение которой, выполнить экспорт некоторой функции, в...

Вызов Dll-фий в другой Dll - C++
не получается дернуть dll в другой dll. Подскажите, как должен происходить вызов dll1 в dll2 ? (псевдокод) dll1.cpp { int...

Как подключить dll на C# к проекту (dll) на С++ - C++
Подскажите, пожалуйста, как подключить dll на C# к проекту (dll) на С++. В интернете много примеров, где показаны примеры по подключению...

Производительность - C++
Подскажите, где или что почитать о том, как писать БЫСТРЫЕ программы? (про разработку высоконагруженных программ). Копаюсь в интернете -...


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

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

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