К изготовлению спиртов это не относится У нас на фирме так называют процесс работы программы intrep.exe размером, извините, аж... 11кб! Нужна она для того, чтобы интерпретировать скрипты для vdsOs. Имеется на сервере файл размером в 60 ГИГАБАЙТ определённого формата, внутри которого первые 512 байт - загрузчик, - остальное - живая среда для тестирования разных программ. Наши спецы даже умудрились создать виртуальный комп в сети, файлы которого - часть этого большого файла. Мы работаем над проблемами скорости и времени выполнения разных задач. Моя работа, кроме разработки программ для vdsOs, ещё заключается в том, чтобы вычищать остатки скриптов из файла. Они хранятся в специально отведённом месте, у которого размер 100 MB. Например, кто-то тестировал скрипт архивации данных, после работы которого остались temp-файлы и др... Их находить очень тяжело, особенно, если привышен лимит в 100 MB или скрипт глюканёт и навсегда останется внутри файла. Это очень тяжело делать, так как не знаешь, где и что валяется. Я это делаю на Java. Может есть способ разгребать завалы в системе на ASSEMBLER? PS... Если увидите скрипты - застрелитесь!
Вот начало файла: Код (Text): CD 39 58 BA 3D 00 CD 1F │ 56 44 46 53 E9 3B 01 E8 ═9X║= ═▼VDFSщ;☺ш 00 01 │ ☺ А вот скрипт, который показывает на экран сообщение и глючит! Код (Text): SVDFS1.0 DECLARE_DATA 'hello world' 310, 800 320, 600 321; main 0 TO CC; 120 TO CD; SAVE CC; 310 TO VN; FROM POS VN TO CC LOAD CC GET FUNCTION 'ShowWindow' SEND MSG CALL ShowWindow 310, CC, CD+4, POS AN, 0, 320, 321; SENT MSG TERMINATE OVER Что такое CC, VN, CD знает только интерпретатор
opennetworks Т.е. на Java бродильщик глючит или не совсем эффективно работает и Вы хотите переписать его на асме?
opennetworks На java которая под, этой системой работает или под обычной осью? Опять же на ASSEMBLER который под, этой системой работает или под обычной осью? Если в обоих случаях разговор об "обычных под осёвых реализациях" то всё сводится к перекладыванию кода с java на ASSEMBLER... ps: А если не секрет что такое vdsOs?
vdsOs - Virtual Data Storage and Operation System. Это - плод работы местных умельцев. vdsOS ставится на комп с виндой, и работает на подобие vmware. Это среда для тестирования разных других систем. Так что использовать придётся java и ASM от винды - мы ведь обращаемся к реально существующему 60-гиговому файлу. У нас просто люди ленивые, наверное. Скрипты, которые мы пишем, не содержат переменных. В примере скрипта 'hello world' лежит по адресу 310. Это не переменная - это пара "данные - адрес". этот скрипт оставляет мусор потому, что перед сообщением о выходе, мы не освободили адреса 310, 320 и 321. Их надо чистить, иначе мастдай!
Он работает нормально, но крайне медленно, даже при использовании потоков. Хотелось бы некоторые функции переложить на ASM
opennetworks Интенсивное использование потоков обычно только усугубляет производительность JVM. Оптимизировать класс-файлы с помощью JoGa и настраивать параметры запуска JVM пробовали? JNI - тот ещё тормоз.
Кто-то у нас предлагал использовать те же скрипты, но это ж помереть можно! На java: cc = vm на svd Script: SAVE vm FROM vm TO cc LOAD vm SAVE cc Извращенцы! по-русски это звучит так: сохранить vm (куда - не понятно) переместить из vm в cc восстановить vm сохранить cc ---- Пробовал не использовать потоки - ещё хуже. Что делать, если: найдено 5 вхождений в disabled области системы, но через секунду-другую, обнаруживается, что в 3-м вхождении переменная или дескриптор ресурса кем-то используются---- удалять остальные и ждать, пока третий не будет свободен. А что если вхождений 50 000?