| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Создание виртуального диска в ОЗУ |
| Автор: Rasool 15.6.2016, 16:04 | ||
В нашей программе в функции загрузки iges-файлов 3D-модели многократно вызывается внешняя программа с жесткого диска triangle.exe:
Из-за этого программа жутко тормозит при загрузке сложного iges-файла. Самое простое решение: создать дополнительный виртуальный диск в ОЗУ, скопировать туда triangle.exe и создавать файлы data.node там. Вопрос: как в Delphi создать виртуальный диск в ОЗУ? Может быть, есть какая-то консольная программа Windows, которую можно запустить с помощью процедуры ExecuteFile, которая создает виртуальный диск в ОЗУ? |
| Автор: DYUMON 16.6.2016, 05:17 |
| У меня такое материнка поддерживает и к ней идет спец утилита для того что бы монтировать диски из оперативной памяти. тебе как вариант засунуть утилиту на ssd, может поможет. как вариант тут почитай. https://support.microsoft.com/ru-ru/kb/257405 Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Sozdaniye-virtualnogo-diska-v-OZU-id576152baae2015091d8b4567#findElement_E7045_57620c34ae2015d70c86e9de_0 |
| Автор: Guinness 16.6.2016, 08:42 | ||||
1) Каков размер программы? Если он не шибко большой, то, возможно, основное время тратится не на чтение файла с жесткого диска, а на создание процесса операционной системой. Тогда виртуальный диск не спасёт отца русской демократии. 2) Есть ли какие-нибудь другие интерфейсы взаимодействия с данной программой кроме вызова её через командную строку? (COM, pipe, socket, stdin/stdout и т.п.) Ибо один раз запустить и передавать ей команды на выполнение всяко лучше, чем подтягивать для этого драйвер виртуального диска. 3) К слову, Вы можете один раз считать этот exe файл в память, а далее, если вы конечно знаете что такое PE-формат, вызывать функцию main напрямую. Хотя тут возможны различные подводные камни, о которых я Вам сказать не смогу, ибо так никогда не пробовал делать. Добавлено через 11 минут и 6 секунд ИМХО, вообще, раз у вас так часто вызывается данная утилита, то следовательно - это критическая часть вашего приложения. Т.к. она написана не Вами, то это приводит печальным последствиям и придумыванию различных костылей. Для тестового приложения такая схема вполне оправдана, но раз Вы обнаружили, что "бутылочное горлышко" у Вас - это вызов данной утилиты, то было правильно самому реализовать данные вычисления. |
| Автор: Peter 16.6.2016, 14:36 |
| Отсылаю к книге (наверняка есть в электронном варианте) Андрей Шкрыль Delphi. Народные советы.- СПб.: БХВ-Петербург, 2007. Глава 6, стр. 298-299. Перенес бы весь текст, но нет сканера, а зрение не позволяет набирать те 20 строчек. Однако название раздела звучит – «Вопрос 8. Как создать виртуальный диск и затем, после окончания работы, удалить его?». И снова и снова и какой раз… Наберите в GOOGLE «Как создать виртуальный диск delphi», результат поиска – «Результатов: примерно 27 300 (0,25 сек.)». Ясно, что части результатов не подходят. Но внимательно смотрим (без анализа текста): http://forum.sources.ru/index.php?showtopic=9545 http://forum.sources.ru/index.php?showtopic=47218 http://forum.sources.ru/index.php?showtopic=95457 http://www.cyberforum.ru/delphi/thread493937.htm http://www.cyberforum.ru/delphi/thread1763547.ht Нахожу и данный вопрос http://forum.vingrad.ru/forum/s/c9ed469bffe6d054d757d694860a1971/topic-387852/anchor-entry2660195/0.html http://forum.vingrad.ru/topic-19166.html http://www.delphisources.ru/pages/sources/system/2013-year/virtual-disk.htm - программа для создания виртуального диска. «Исходник программы, показывающей пример использования библиотеки VirtualDisk для создания виртуального зашифрованного диска. Вы можете работать с ним точно также, как с диском C:\ либо папкой Мои Документы: копировать и стирать файлы, перетаскивать их туда мышкой, просматривать диск через проводник Windows Explorer и т.д., при этом вся информация шифруется автоматически "на лету" алгоритмом AES 128 - Автор Зорков Игорь.» http://ru.vingrad.com:8080/Kak-sozdat-virtualny-disk-cherez-Delphi-v-XP-id50b9f33e6ccc19801404290e https://rsdn.ru/forum/delphi/411491.all http://www.delphimaster.net/view/1-1008/all я не привожу тексты – это излишне. Не знаю, насколько приведенные форумы и статьи реально могут помочь. И это только первая страница из результатов поиска в GOOGLE. Вопрос моментально пробудил воспоминания о выше указанной книге. При разрешении конкретной проблемы обошелся без его применения - писал приложения управления спекл-интерферометрическими установками и сохранение интерферограмм в реальном времени требовало высокого быстродействия. Пробуй, неудачные варианты могут помочь позднее. Главное – опыт. Человек умеет только то, чему научился сам – это и есть жизнь. Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Sozdaniye-virtualnogo-diska-v-OZU-id576152baae2015091d8b4567#findElement_E7045_57628f27ae2015272586439d_0 |
| Автор: stanilar 2.7.2016, 14:12 |
Модератор: Сообщение скрыто. |