Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание виртуального диска в ОЗУ 
:(
    Опции темы
Rasool
Дата 15.6.2016, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 4.6.2011

Репутация: нет
Всего: нет



В нашей программе в функции загрузки iges-файлов 3D-модели многократно вызывается внешняя программа с жесткого диска triangle.exe:
Код

ExecuteFile('triangle.exe', '-' + CTriFlags + ' data.node', ExtractFilePath(ParamStr(0)), 0);

Из-за этого программа жутко тормозит при загрузке сложного iges-файла. Самое простое решение: создать дополнительный виртуальный диск в ОЗУ, скопировать туда triangle.exe и создавать файлы data.node там.
Вопрос: как в Delphi создать виртуальный диск в ОЗУ? Может быть, есть какая-то консольная программа Windows, которую можно запустить с помощью процедуры ExecuteFile, которая создает виртуальный диск в ОЗУ?

PM MAIL   Вверх
Alexeis
Дата 15.6.2016, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



Цитата(Rasool @  15.6.2016,  17:04 Найти цитируемый пост)
Может быть, есть какая-то консольная программа Windows, которую можно запустить с помощью процедуры ExecuteFile, которая создает виртуальный диск в ОЗУ?

  За работу дисков отвечают драйвера. Точнее драйвера отвечают за обслуживание любых устройств, в том числе и виртуальных, а диск это устройство. Не слышал, чтобы в винде было что-то подобное. Но есть программы этого класса которые не просят денег. Например 
  В любом случае как бы программа не запускалась ей придется загрузить драйвер. Это действие потребует прав администратора.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DYUMON
Дата 16.6.2016, 05:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 17.6.2006
Где: Новосибирск

Репутация: нет
Всего: 3



У меня такое материнка поддерживает и к ней идет спец утилита для того что бы монтировать диски из оперативной памяти. тебе как вариант засунуть утилиту на ssd, может поможет.
как вариант тут почитай.
https://support.microsoft.com/ru-ru/kb/257405

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL ICQ Skype   Вверх
Guinness
Дата 16.6.2016, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 21.6.2009
Где: Зеленоград

Репутация: нет
Всего: 10



Цитата(Rasool @  15.6.2016,  17:04 Найти цитируемый пост)
В нашей программе в функции загрузки iges-файлов 3D-модели многократно вызывается внешняя программа с жесткого диска triangle.exe:

Цитата(Rasool @  15.6.2016,  17:04 Найти цитируемый пост)
 Самое простое решение: создать дополнительный виртуальный диск в ОЗУ, скопировать туда triangle.exe и создавать файлы data.node там.

1) Каков размер программы? Если он не шибко большой, то, возможно, основное время тратится не на чтение файла с жесткого диска, а на создание процесса операционной системой. Тогда виртуальный диск не спасёт отца русской демократии.
2) Есть ли какие-нибудь другие интерфейсы взаимодействия с данной программой кроме вызова её через командную строку? (COM, pipe, socket, stdin/stdout и т.п.) Ибо один раз запустить и передавать ей команды на выполнение всяко лучше, чем подтягивать для этого драйвер виртуального диска.
3) К слову, Вы можете один раз считать этот exe файл в память, а далее, если вы конечно знаете что такое PE-формат, вызывать функцию main напрямую. Хотя тут возможны различные подводные камни, о которых я Вам сказать не смогу, ибо так никогда не пробовал делать.

Добавлено через 11 минут и 6 секунд
ИМХО, вообще, раз у вас так часто вызывается данная утилита, то следовательно - это критическая часть вашего приложения. Т.к. она написана не Вами, то это приводит печальным последствиям и придумыванию различных костылей. Для тестового приложения такая схема вполне оправдана, но раз Вы обнаружили, что "бутылочное горлышко" у Вас - это вызов данной утилиты, то было правильно самому реализовать данные вычисления.

Это сообщение отредактировал(а) Guinness - 16.6.2016, 08:46
PM MAIL   Вверх
Piter
Дата 16.6.2016, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 24.8.2008

Репутация: нет
Всего: нет



Отсылаю к книге (наверняка есть в электронном варианте) Андрей Шкрыль 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/c9ed469bff...y2660195/0.html
http://forum.vingrad.ru/topic-19166.html
http://www.delphisources.ru/pages/sources/...irtual-disk.htm - программа для создания виртуального диска.
«Исходник программы, показывающей пример использования библиотеки VirtualDisk для создания виртуального зашифрованного диска. Вы можете работать с ним точно также, как с диском C:\ либо папкой Мои Документы: копировать и стирать файлы, перетаскивать их туда мышкой, просматривать диск через проводник Windows Explorer и т.д., при этом вся информация шифруется автоматически "на лету" алгоритмом AES 128 - Автор Зорков Игорь.»
http://ru.vingrad.com:8080/Kak-sozdat-virt...ccc19801404290e
https://rsdn.ru/forum/delphi/411491.all
http://www.delphimaster.net/view/1-1008/all
я не привожу тексты – это излишне. Не знаю, насколько приведенные форумы и статьи реально могут помочь. И это только первая страница из результатов поиска в GOOGLE. Вопрос моментально пробудил воспоминания о выше указанной книге. При разрешении конкретной проблемы обошелся без его применения - писал приложения управления спекл-интерферометрическими установками и сохранение интерферограмм в реальном времени требовало высокого быстродействия. Пробуй, неудачные варианты могут помочь позднее. Главное – опыт. Человек умеет только то, чему научился сам – это и есть жизнь.


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
stanilar
Дата 2.7.2016, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 9.2.2010

Репутация: нет
Всего: нет




Модератор: Сообщение скрыто.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0935 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.