PDA

Zobacz pełną wersję : poszukiwany programista/informatyk (Windows)



Rafał_Sz
10-03-2015, 09:16
Problem:

Pojawianie się się komunikatu "out of memory" i wywalanie obliczeń w programie Roland Modela Player 4 (postprocesor i sterownik maszyny Roland) przy projektach wymagających długich i skomplikowanych obliczeń.

Wskazówki:

- System Windows 7 PRO 64, RAM 32 GB
- Obliczenia są na tyle skomplikowane, że i7 4.8 GHz wykonuje je przez kilka, czasami kilkanaście godzin. Program nie korzysta z technologii HT.
- Pamięć RAM nie jest nigdy wykorzystywana nawet w 50%.
- Osobiście podejrzewam, że program Rolanda został sknocony w Javie i JRT robi jakieś chocki klocki.
- Problem jest na świecie znany, ale nie znaleziono jeszcze rozwiązania. Roland zachowuje się jak Nikon - wszystko gra, problemu nie ma. ;)

Szukane rozwiązanie: Łatka systemowa, łatka do programu lub zmiana ustawień systemu.

Wynagrodzenie za rozwiązanie: satysfakcja, flaszka lub banknoty NBP. :)

moshica
10-03-2015, 16:19
Próbowałeś jednej / dedykowanej wersji Javy ?
Czy dla samej Javy zmieniałeś w niej ustawienia ?
Masz wersję Javy 64bitową czy 32 ?

Rafał_Sz
10-03-2015, 16:40
Próbowałem. Niestety na 32 bitowym XP podobny cyrk.

Grabasimo
10-03-2015, 18:24
Problem z zamknietymi strerownikami jest ciezki.. mozesz poszukac przez alternatywne systemy ale z tego co sprawdzilem np: pod linuksem i tak trzeba uzywac widnowowych sterownikow.
Jedyna szansa na rozwiazanie problemu to udazenie bezposrednio do developerow

Kurtz
10-03-2015, 19:18
Jakiekolwiek logi ? Ten soft jest napisany w javie ? Masz jakieś linki do poodbnych problemów
Jeżeli jest napisany w javie, to można użyć jvisualvm, żeby coś podejrzeć.

moshica
10-03-2015, 21:51
Tak ale pewnie skończyłoby się modyfikacją kodu, pod kątem wydajności a do tego trzeba mieć źródła kodu od producenta. Analiza i analiza, temat niełatwy i czasochłonny, dłuższy niż te obliczenia ;-) Nie jestem wyrocznią, ale często to droga donikąd.

Rafał_Sz
10-03-2015, 21:53
Mało kto coś wie. Info o Javie znalazłem na forum CNC w USA. Problemem jest to, że użytkowników tego softu jest na świecie może kilka tysięcy. Problem dodatkowy stanowi brak alternatywy. Jest co prawda Deskproto, ale niestety jest zbyt ułomny w wielu kwestiach. Sam program Rolanda jest świetny, poza tym, że w pewnych przypadkach nie działa. :)

Tutaj link do tego problemu innych użytkowników. Rozwiązanie podane w wątku sprawdza się sporadycznie, gdy plik wynikowy ma między 300 a 400 MB. Powyżej 400 MB i tak wywala "out of memory".
http://www.cnczone.com/forums/general-cnc-mill-lathe-control-software-nc-/114220-roland-modela-player4-running-memory.html

pawl_s
10-03-2015, 22:07
Z ciekawości spojrzałem i faktycznie nie ma wielu odpowiedzi na ten problem. A powiedz jaki masz system plikow na dyskach? Może stary FAT i stąd problem?

Rafał_Sz
10-03-2015, 22:13
Ten bład wywala bez względu na system plików na dyskach. System operacyjny też nie ma na to wpływu, podobnie jak ilośc RAMu. Sprawdziłem w praktyce. Zawsze to samo.

RobertMiernik
10-03-2015, 22:30
Programista Windows, brzmi jak Fotograf Fx ;)

Co do problemu, rsz niestety bez przepisania Rolanda nic z tym nie zrobisz a do tego programisty raczej nie znajdziesz (już o takim za flaszkę nie wspominając).

Jeśli to w javie jest, to próbowałeś zmiennymi środowiskowymi wymusić większy przydział pamięci dla javy?
na przykład tak:

javaw -Xmx8192m -Xms4096m -jar ścieżka_do_rolanda

Rafał_Sz
11-03-2015, 08:25
Jeśli to w javie jest, to próbowałeś zmiennymi środowiskowymi wymusić większy przydział pamięci dla javy?
na przykład tak:

javaw -Xmx8192m -Xms4096m -jar ścieżka_do_rolanda

W Javie zmieniłem tylko na javaw-Xincgc -Xmx4096M, nic nie dało. Spróbuję Twojej metody. Tylko jako ścieżkę mam podać "J:\Program Files\MODELA Player 4\Program\MP4.exe" czy "J:\Program Files\MODELA Player 4\Data"?

RobertMiernik
11-03-2015, 10:05
do exe, ale czemu to ma exe, to nie jest w takim razie 'czysta' java?

Rafał_Sz
11-03-2015, 11:08
Pojęcia nie mam. Ale coś musi być na rzeczy, bo po wpisaniu "-Xincgc -Xmx3500Mjavaw -Xmx8192m -Xms4096m-J:\Program Files\MODELA Player 4\Program\MP4.exe" obliczenia wywalają się dużo wcześniej. Błąd zawsze wywalało przy 100% (tak jak by wyliczył do końca, ale nie mógł stworzyć z tego obszaru w pamięci z finalnym plikiem), teraz przy 30%. Zapisanie niedokończonego projektu, restart systemu i ponowne uruchomienie systemu umożliwia przeliczenie do 60-70%. Czasami do końca ze stworzeniem gotowego pliku trajektorii. Ale ta czy siak, d. blada.

Jestem na to za głupi. :)

Kurtz
11-03-2015, 14:12
Xmx4096M mało, podaj wyższe wartości.
Mógłbyś podać dokładne argumenty z jakimi uruchamiałeś program i jakie były efekty ( kiedy się wywala przy jakich ustawieniach pamięci ) ? Może tutaj coś da się powalczyć więcej i ustawić zamiast 4 czy 8 to 16GB. Najprawdopodobniej aby zapisać plik wynikowy, java potrzebuje duży obszar pamięci na całość pliku ( memory mapped file ? ), a być może jeszcze większy obszar pamięci. Bez dokładniejszych logów to oczywiście zgadywanie.

Rafał_Sz
11-03-2015, 14:43
W systemie potrafię zrobić tyle ile muszę. Na głębsze grzebanie jestem za cienki, bo nie mam czasu na pierdoły. ;) Zwiększyłem ilość pamięci w Javie i ręcznie przypisałem wartości pamięci wirtualnej. Trajektoria właśnie się liczy. Please wait. ;)


https://forum.nikoniarze.pl/imgimported/2015/03/636x460design_01-1.jpg
źródło (https://dov5cor25da49.cloudfront.net/products/2580/636x460design_01.jpg)

RobertMiernik
11-03-2015, 16:28
Za dużo tam tym parametrów tylko te co wpisałem podaj.
Jeśli 8 to za mało spróbuj 16

Rafał_Sz
11-03-2015, 19:21
Fakt. Poprawiłem, pozmieniałem. Sypie się dalej.


EDIT:

Uderzyłem do MS, w końcu mam wsparcie techniczne. ;) Dostałem wytyczne względem zmiany klucza rejestru i łatkę która ma rozwiązać problem zarówno w 32 jak i 64 bitowym systemie. Twierdzą, że to nie ma nic wspólnego z javą, a niechlujnym kodowaniem programów pod Windows.

Test w toku...