Arduino IDE: lassú fordítás
Arduino IDE: lassú fordítás
Sziasztok!
Ahogy elnézem a netet elég sokaknak problémája az, hogy vajon miért olyan lassú az arduino fordítója. Nálam is van egy 20-25 másodpercnyi idő, amíg látszólag nem csinál semmit a fordító, valójában egy temp mappába lefordít kerek húsz beépített libraryt, függetlenül attól, hogy használom-e őket a kódban vagy sem... nem lehetne erről valahogy lebeszélni a fordítót? Ha esetleg látná, hogy ezek már le vannak fordítva, akkor nem kellene neki újra, vagy valami...
Valaki azt javasolta, hogy nézzem meg a file dátumokat, mert valami hiba miatt lehet, hogy a forrás újabb dátumozású, mint az aktuális dátum, és ezért mindig frissebbnek gondolja a forrást és emiatt fordítja újra.
Más a boards.txt kiegészítését tanácsolta, de az se működött, sőt állítólag az 1.0-s IDE-től már figyelmen kívül hagyja a program...
Valami java buherálást leltem a neten, de ahhoz nem értek, úgyhogy ötletem se volt, hogy hogy kezdenék neki.
Valakinek sikerült már ezt a problémát áthidalni?
Előre is köszönök bármi nemű segítséget, további szép napot!
Ahogy elnézem a netet elég sokaknak problémája az, hogy vajon miért olyan lassú az arduino fordítója. Nálam is van egy 20-25 másodpercnyi idő, amíg látszólag nem csinál semmit a fordító, valójában egy temp mappába lefordít kerek húsz beépített libraryt, függetlenül attól, hogy használom-e őket a kódban vagy sem... nem lehetne erről valahogy lebeszélni a fordítót? Ha esetleg látná, hogy ezek már le vannak fordítva, akkor nem kellene neki újra, vagy valami...
Valaki azt javasolta, hogy nézzem meg a file dátumokat, mert valami hiba miatt lehet, hogy a forrás újabb dátumozású, mint az aktuális dátum, és ezért mindig frissebbnek gondolja a forrást és emiatt fordítja újra.
Más a boards.txt kiegészítését tanácsolta, de az se működött, sőt állítólag az 1.0-s IDE-től már figyelmen kívül hagyja a program...
Valami java buherálást leltem a neten, de ahhoz nem értek, úgyhogy ötletem se volt, hogy hogy kezdenék neki.
Valakinek sikerült már ezt a problémát áthidalni?
Előre is köszönök bármi nemű segítséget, további szép napot!
Re: Arduino IDE: lassú fordítás
A hosszú fordítás az Arduino velejárója:(
A fordításkor nem abszolút memóriacímek vannak bennük (változók, programsorok, stb), így újra kell mindig fordítani - függően a teljes program memóriatérképétől.
Az Arduino alaprendszere sok függvényt használ, amit Te akár nem is látsz. Nézz bele a wiring.c állományba. Ez a rendszer "lelke".
A main.cpp meg a rendszermagot írja le.
Én nem piszkálnék rendszert, ha nem muszáj. Bár lehet, hogyha külön hívod meg a fordítót, akkor annak paraméterezésével megadható, hogy a meglevőt ne piszkálja...
A fordításkor nem abszolút memóriacímek vannak bennük (változók, programsorok, stb), így újra kell mindig fordítani - függően a teljes program memóriatérképétől.
Az Arduino alaprendszere sok függvényt használ, amit Te akár nem is látsz. Nézz bele a wiring.c állományba. Ez a rendszer "lelke".
A main.cpp meg a rendszermagot írja le.
Én nem piszkálnék rendszert, ha nem muszáj. Bár lehet, hogyha külön hívod meg a fordítót, akkor annak paraméterezésével megadható, hogy a meglevőt ne piszkálja...
Re: Arduino IDE: lassú fordítás
Szinte kizárt, hogy ezek mind kellenének... ha mégis, akkor ez egy elég fura rendszer
avr studiot és bascomot használtam eddig, azokban nincs efféle. Az óriási bonyolultságú alanti programhoz is ugyanúgy lefordul mind a 20 cucc:
Ezek fordulnak le:
...köszönöm az infót, akkor úgy fest várnom kell egy hivatalos "hegesztésre" etéren...
Kód: Egész kijelölése
void setup() {
}
void loop() {
}Kód: Egész kijelölése
CDC.cpp
HardwareSerial.cpp
HID.cpp
IPAddress.cpp
main.cpp
malloc.c
new.cpp
Print.cpp
realloc.c
Stream.cpp
Tone.cpp
USBCore.cpp
WInterrupts.c
wiring.c
wiring_analog.c
wiring_digital.c
wiring_pulse.c
wiring_shift.c
WMath.cpp
WString.cppRe: Arduino IDE: lassú fordítás
Az Arduino úgy működik, hogy mindent lefordít, de linkelésnél ami nem kell kihajítja.
Az 1.0.6-os meglehetősen kis kódméretet csinál.
Bár a probléma elég érdekes, mert nálam másodpercen belül lefordul minden 1.0.6-tal. Az általad említett 20 fájl lefordítása egy fordítónak a vicc kategóriába tartozik. A 2GHz-es dual core notebook-om is megfelelő sebességgel nyomja, nem szoktam várni a végeredményre.
Szóval nálad 2 dolog lehetséges:
- vagy a géped eszméletlen lassú
- vagy USB pen drive-on, esetleg CD-rom on tartod az Arduino fordításához szükséges fájlokat, aminek köszönhetően borzalmas lassú lesz minden
Az 1.0.6-os meglehetősen kis kódméretet csinál.
Bár a probléma elég érdekes, mert nálam másodpercen belül lefordul minden 1.0.6-tal. Az általad említett 20 fájl lefordítása egy fordítónak a vicc kategóriába tartozik. A 2GHz-es dual core notebook-om is megfelelő sebességgel nyomja, nem szoktam várni a végeredményre.
Szóval nálad 2 dolog lehetséges:
- vagy a géped eszméletlen lassú
- vagy USB pen drive-on, esetleg CD-rom on tartod az Arduino fordításához szükséges fájlokat, aminek köszönhetően borzalmas lassú lesz minden
Re: Arduino IDE: lassú fordítás
- vagy a géped eszméletlen lassú
Ilyen procim van.
- vagy USB pen drive-on, esetleg CD-rom on tartod az Arduino fordításához szükséges fájlokat, aminek köszönhetően borzalmas lassú lesz minden
Ilyen SSD-n van a rendszer is meg az Arduino is, meg a %temp% is, amibe fordít.
Minden más gyors, szerintem nem hardverprobléma van... UAC kikapcsolva, rendszergazda vagyok, hálózati problémákat nem tapasztaltam.
Ha neked olyan gyors (olyannak kéne lennie), akkor megtennéd nekem, hogy kérsz egy fordításkori log mutatását? File | beállítások helyen találod.
Nálam ilyen a log (látható benne a bonyolult program is. bocs az apró betűkért, de sok mindent kiír, nem akartam hatalmas képet róla... amennyire kell olvasható, nyilván nem így használom a szerkesztőt).
Meg ilyen a mappa, ami legenerálódik:
Ilyen mappából már van rengeteg, az *.o (ELF) fileok bitre megegyeznek mindegyikben (nyilván ahol használtam include-olt fájlt, ott az pluszban hozzájön, de az alap 20 megegyezik mindenütt), illetve a .d fileokban lévő egyedüli eltérés a %temp%\ almappájának a neve. Énszerintem ez még mindig valami hiba...
Ilyen procim van.
- vagy USB pen drive-on, esetleg CD-rom on tartod az Arduino fordításához szükséges fájlokat, aminek köszönhetően borzalmas lassú lesz minden
Ilyen SSD-n van a rendszer is meg az Arduino is, meg a %temp% is, amibe fordít.
Minden más gyors, szerintem nem hardverprobléma van... UAC kikapcsolva, rendszergazda vagyok, hálózati problémákat nem tapasztaltam.
Ha neked olyan gyors (olyannak kéne lennie), akkor megtennéd nekem, hogy kérsz egy fordításkori log mutatását? File | beállítások helyen találod.
Nálam ilyen a log (látható benne a bonyolult program is. bocs az apró betűkért, de sok mindent kiír, nem akartam hatalmas képet róla... amennyire kell olvasható, nyilván nem így használom a szerkesztőt).
Meg ilyen a mappa, ami legenerálódik:
Kód: Egész kijelölése
Volume in drive C has no label.
Volume Serial Number is 5C20-8BAB
Directory of C:\Users\spd\AppData\Local\Temp\build3342077782441658504.tmp
2015.01.06. 18:40 <DIR> .
2015.01.06. 18:40 <DIR> ..
2015.01.06. 18:40 0 1.txt
2015.01.06. 18:31 1 239 CDC.cpp.d
2015.01.06. 18:31 2 224 CDC.cpp.o
2015.01.06. 18:31 329 390 core.a
2015.01.06. 18:31 1 360 HardwareSerial.cpp.d
2015.01.06. 18:31 34 320 HardwareSerial.cpp.o
2015.01.06. 18:31 1 319 HID.cpp.d
2015.01.06. 18:31 2 224 HID.cpp.o
2015.01.06. 18:31 1 250 IPAddress.cpp.d
2015.01.06. 18:31 15 936 IPAddress.cpp.o
2015.01.06. 18:31 1 073 main.cpp.d
2015.01.06. 18:31 4 516 main.cpp.o
2015.01.06. 18:31 350 malloc.c.d
2015.01.06. 18:31 9 628 malloc.c.o
2015.01.06. 18:31 225 new.cpp.d
2015.01.06. 18:31 6 640 new.cpp.o
2015.01.06. 18:31 1 161 Print.cpp.d
2015.01.06. 18:31 41 748 Print.cpp.o
2015.01.06. 18:31 352 realloc.c.d
2015.01.06. 18:31 7 312 realloc.c.o
2015.01.06. 18:31 1 093 sketch_jan06a.cpp.d
2015.01.06. 18:31 13 sketch_jan06a.cpp.eep
2015.01.06. 18:31 9 451 sketch_jan06a.cpp.elf
2015.01.06. 18:31 1 347 sketch_jan06a.cpp.hex
2015.01.06. 18:31 3 500 sketch_jan06a.cpp.o
2015.01.06. 18:31 1 169 Stream.cpp.d
2015.01.06. 18:31 31 176 Stream.cpp.o
2015.01.06. 18:31 1 081 Tone.cpp.d
2015.01.06. 18:31 16 560 Tone.cpp.o
2015.01.06. 18:31 1 332 USBCore.cpp.d
2015.01.06. 18:31 2 232 USBCore.cpp.o
2015.01.06. 18:31 619 WInterrupts.c.d
2015.01.06. 18:31 6 000 WInterrupts.c.o
2015.01.06. 18:31 604 wiring.c.d
2015.01.06. 18:31 9 668 wiring.c.o
2015.01.06. 18:31 623 wiring_analog.c.d
2015.01.06. 18:31 6 972 wiring_analog.c.o
2015.01.06. 18:31 625 wiring_digital.c.d
2015.01.06. 18:31 10 400 wiring_digital.c.o
2015.01.06. 18:31 621 wiring_pulse.c.d
2015.01.06. 18:31 7 032 wiring_pulse.c.o
2015.01.06. 18:31 621 wiring_shift.c.d
2015.01.06. 18:31 5 620 wiring_shift.c.o
2015.01.06. 18:31 154 WMath.cpp.d
2015.01.06. 18:31 7 028 WMath.cpp.o
2015.01.06. 18:31 243 WString.cpp.d
2015.01.06. 18:31 95 068 WString.cpp.o
47 File(s) 683 119 bytes
2 Dir(s) 5 431 046 144 bytes free
Re: Arduino IDE: lassú fordítás
Végre sikerült elindítani a Windows-t otthon és kipróbálni, hogyan fordít az Arduino. Ha ez megnyugtat, nálam is hozta a 10-15 másodperces időket a 4 procis SSD-s gépen.
A probléma azért nem tűnt fel, mert Linuxot használok, ott
- első fordítás kb. fél másodpercig tartott
- a második tizedmásodperc alatt lement, mert az első fordítás után megmaradt .o fájlokat használta
Talán annak érdemes utánaolvasni, hogy miért van ez az őrületes különbség Windows alatt. Vírus írtó?
A probléma azért nem tűnt fel, mert Linuxot használok, ott
- első fordítás kb. fél másodpercig tartott
- a második tizedmásodperc alatt lement, mert az első fordítás után megmaradt .o fájlokat használta
Talán annak érdemes utánaolvasni, hogy miért van ez az őrületes különbség Windows alatt. Vírus írtó?
Re: Arduino IDE: lassú fordítás
Végre sikerült elindítani a Windows-t otthon és kipróbálni, hogyan fordít az Arduino.
Nagyon szépen köszönöm, hogy foglalkoztál vele!
Ha ez megnyugtat, nálam is hozta a 10-15 másodperces időket a 4 procis SSD-s gépen.
Köszönöm, igen, megnyugtat: így már sokkal biztosabb, hogy nem egyedi a probléma
(bár sokan panaszkodnak erre szerte a neten, de ugye az lehet bármi is...)
A probléma azért nem tűnt fel, mert Linuxot használok, ott
- első fordítás kb. fél másodpercig tartott
- a második tizedmásodperc alatt lement, mert az első fordítás után megmaradt .o fájlokat használta
Ennek így kéne működnie win alatt is... nem kellene újrafordítania mindent, legalábbis azokat a modulokat semmiképp, amiknek a forrása nem változott, ennek ellenére mindig újrafordít mindent, és (nálam) nem épp gyorsan. Összehasonlítottam random 6-8 fordítás eredményét (nem takarítottam a tempet mostanság, és összegyűlt eddig 26 mappányi): a benne található ELF fájlok binárisan megegyeznek, tehát tök felesleges újrafordítgatni őket (írtam fentebb pontosabban).
Talán annak érdemes utánaolvasni, hogy miért van ez az őrületes különbség Windows alatt. Vírus írtó?
Tegnap tettem egy kísérletet: letiltottam a hálózatot, uninstalláltam a vírusirtót meg a tűzfalat, kilőttem a defendert, a win tűzfalat (szolgáltatásostul persze): a helyzet változatlan. Most win8.1x64 van fent, de ugyanilyen volt win7x64 alatt is.
Tegnap ugrott be az is, hogy feltelepítsem a másik gépemre (tudom: rövid az eszem)... azon a gépindítástól számított legelső fordítással 9 másodperc alatt, a többivel kb. 5 másodperc alatt végez annak ellenére, hogy az is minden esetben újrafordít mindent. A proci benne pedig (elvileg) lassabb ettől, ugyanúgy 8GB RAM, bár ott nincs SSD, de van dedikált VGA (aminek nem kéne számtania). Tűzfal és vírusirtó ugyanaz fut rajta, azon win7x64 van, ugyanaz, mint ezen a gépen volt (azzal is ugyanúgy lassú volt). Amiben Arduino-szempontból különbözik, az a java verziója: amazon (amin gyorsabban fordul) kb. két éves van telepítve (nem kellett még semminek újabb), míg emezen naprakészen tartom... Ha már teszt, akkor felfrissítettem a javat a másik gépen is: ugyanúgy gyors maradt.
5s -- 35s. Szerintem ez elég jelentős...
Ettől függetlenül a cél az lenne, hogy ezen a gépen tudjam jól futtatni, mert a másik gép egyéb szempontokból körülményes. Lehet, hogy bizonyos procikat egyszerűen csak nem szeret a fordító?...
Nagyon szépen köszönöm, hogy foglalkoztál vele!
Ha ez megnyugtat, nálam is hozta a 10-15 másodperces időket a 4 procis SSD-s gépen.
Köszönöm, igen, megnyugtat: így már sokkal biztosabb, hogy nem egyedi a probléma
A probléma azért nem tűnt fel, mert Linuxot használok, ott
- első fordítás kb. fél másodpercig tartott
- a második tizedmásodperc alatt lement, mert az első fordítás után megmaradt .o fájlokat használta
Ennek így kéne működnie win alatt is... nem kellene újrafordítania mindent, legalábbis azokat a modulokat semmiképp, amiknek a forrása nem változott, ennek ellenére mindig újrafordít mindent, és (nálam) nem épp gyorsan. Összehasonlítottam random 6-8 fordítás eredményét (nem takarítottam a tempet mostanság, és összegyűlt eddig 26 mappányi): a benne található ELF fájlok binárisan megegyeznek, tehát tök felesleges újrafordítgatni őket (írtam fentebb pontosabban).
Talán annak érdemes utánaolvasni, hogy miért van ez az őrületes különbség Windows alatt. Vírus írtó?
Tegnap tettem egy kísérletet: letiltottam a hálózatot, uninstalláltam a vírusirtót meg a tűzfalat, kilőttem a defendert, a win tűzfalat (szolgáltatásostul persze): a helyzet változatlan. Most win8.1x64 van fent, de ugyanilyen volt win7x64 alatt is.
Tegnap ugrott be az is, hogy feltelepítsem a másik gépemre (tudom: rövid az eszem)... azon a gépindítástól számított legelső fordítással 9 másodperc alatt, a többivel kb. 5 másodperc alatt végez annak ellenére, hogy az is minden esetben újrafordít mindent. A proci benne pedig (elvileg) lassabb ettől, ugyanúgy 8GB RAM, bár ott nincs SSD, de van dedikált VGA (aminek nem kéne számtania). Tűzfal és vírusirtó ugyanaz fut rajta, azon win7x64 van, ugyanaz, mint ezen a gépen volt (azzal is ugyanúgy lassú volt). Amiben Arduino-szempontból különbözik, az a java verziója: amazon (amin gyorsabban fordul) kb. két éves van telepítve (nem kellett még semminek újabb), míg emezen naprakészen tartom... Ha már teszt, akkor felfrissítettem a javat a másik gépen is: ugyanúgy gyors maradt.
5s -- 35s. Szerintem ez elég jelentős...
Ettől függetlenül a cél az lenne, hogy ezen a gépen tudjam jól futtatni, mert a másik gép egyéb szempontokból körülményes. Lehet, hogy bizonyos procikat egyszerűen csak nem szeret a fordító?...
Re: Arduino IDE: lassú fordítás
update: a lassan fordítós gépen vmware és XP alatt gyors a fordítás (kb. 8/4s)... érdekes. Vagy a 64-bit vág oda a sebességnek, vagy valami szoftverrel ütközik...
Re: Arduino IDE: lassú fordítás
Nekem is lassan fordított Windows 8.1 64x alatt. Azután lecseréltem a 32 java-t 64 bites-re és jelentősen felgyorsult a fordítás.
Üdv: Siki
Üdv: Siki
