Алгоритм брожения на ASM?

Тема в разделе "WASM.BEGINNERS", создана пользователем opennetworks, 27 окт 2006.

  1. opennetworks

    opennetworks New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    436
    К изготовлению спиртов это не относится:)

    У нас на фирме так называют процесс работы программы intrep.exe
    размером, извините, аж... 11кб! Нужна она для того, чтобы интерпретировать скрипты для vdsOs.

    Имеется на сервере файл размером в 60 ГИГАБАЙТ определённого формата, внутри которого первые 512 байт - загрузчик, - остальное - живая среда для тестирования разных программ. Наши спецы даже умудрились создать виртуальный комп в сети, файлы которого - часть этого большого файла. Мы работаем над проблемами скорости и времени выполнения разных задач.

    Моя работа, кроме разработки программ для vdsOs, ещё заключается в том, чтобы вычищать остатки скриптов из файла. Они хранятся в специально отведённом месте, у которого размер 100 MB.

    Например, кто-то тестировал скрипт архивации данных, после работы которого остались temp-файлы и др...

    Их находить очень тяжело, особенно, если привышен лимит в 100 MB или скрипт глюканёт и навсегда останется внутри файла.

    Это очень тяжело делать, так как не знаешь, где и что валяется.

    Я это делаю на Java.

    Может есть способ разгребать завалы в системе на ASSEMBLER?

    PS... Если увидите скрипты - застрелитесь!
     
  2. opennetworks

    opennetworks New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    436
    Вот начало файла:
    Код (Text):
    1.  CD 39 58 BA 3D 00 CD 1F │ 56 44 46 53 E9 3B 01 E8  ═9X║= ═▼VDFSщ;☺ш
    2.  00 01                   │                           ☺
    А вот скрипт, который показывает на экран сообщение и глючит!

    Код (Text):
    1. SVDFS1.0
    2.  
    3. DECLARE_DATA 'hello world' 310, 800 320, 600 321;
    4.  
    5. main
    6.  
    7. 0 TO CC;
    8. 120 TO CD;
    9.  
    10. SAVE CC;
    11.  
    12. 310 TO VN;
    13.  
    14. FROM POS VN TO CC
    15.  
    16. LOAD CC
    17.  
    18. GET FUNCTION 'ShowWindow'
    19.  
    20. SEND MSG CALL ShowWindow 310, CC, CD+4, POS AN, 0, 320, 321;
    21.  
    22. SENT MSG TERMINATE
    23.  
    24. OVER
    Что такое CC, VN, CD знает только интерпретатор
     
  3. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    opennetworks
    Т.е. на Java бродильщик глючит или не совсем эффективно работает и Вы хотите переписать его на асме?
     
  4. P_F

    P_F New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2006
    Сообщения:
    116
    Адрес:
    Russia
    opennetworks
    На java которая под, этой системой работает или под обычной осью?
    Опять же на ASSEMBLER который под, этой системой работает или под обычной осью?
    Если в обоих случаях разговор об "обычных под осёвых реализациях" то всё сводится
    к перекладыванию кода с java на ASSEMBLER...

    ps: А если не секрет что такое vdsOs?
     
  5. opennetworks

    opennetworks New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    436
    vdsOs - Virtual Data Storage and Operation System.

    Это - плод работы местных умельцев. vdsOS ставится на комп с виндой, и работает на подобие vmware.

    Это среда для тестирования разных других систем.

    Так что использовать придётся java и ASM от винды - мы ведь обращаемся к реально существующему 60-гиговому файлу.

    У нас просто люди ленивые, наверное. Скрипты, которые мы пишем, не содержат переменных.

    В примере скрипта 'hello world' лежит по адресу 310. Это не переменная - это пара "данные - адрес".

    этот скрипт оставляет мусор потому, что перед сообщением о выходе, мы не освободили адреса 310, 320 и 321. Их надо чистить, иначе мастдай!
     
  6. opennetworks

    opennetworks New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    436
    Он работает нормально, но крайне медленно, даже при использовании потоков.

    Хотелось бы некоторые функции переложить на ASM
     
  7. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    opennetworks
    Интенсивное использование потоков обычно только усугубляет производительность JVM. Оптимизировать класс-файлы с помощью JoGa и настраивать параметры запуска JVM пробовали?

    JNI - тот ещё тормоз.
     
  8. opennetworks

    opennetworks New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    436
    Кто-то у нас предлагал использовать те же скрипты, но это ж помереть можно!

    На 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?
     
  9. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    opennetworks
    А вот скажи, как понять название темы?
     
  10. opennetworks

    opennetworks New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2006
    Сообщения:
    436
    Чтобы понять название темы, необходимо прочитать её содержание.