TCH (statz) | #1, Főfasz (10443) |
123 | #2380 | ^ | Idézet | Tue, 05 Feb 2013 20:12:35 +01 |
78.92.*.* | *.pool.t-online.hu |
Lehet. Hogy tudom azt frissíteni, melyik csomag része? Sz*rk: Megvan a libc része. Na azt vicces lesz frissíteni. :P |
kemi (statz) | #2, Főfasz (2970) |
118 | #2381 | ^ | Idézet | Wed, 06 Feb 2013 08:41:00 +01 |
94.21.*.* | *.pool.digikabel.hu |
Megpróbálom, hogy beleforgatok egy régi libc-t, de akkor meg nem tudom az újabb verziókkal mennyire lesz kompatibilis. |
kemi (statz) | #2, Főfasz (2970) |
65 | #2382 | ^ | Idézet | Wed, 06 Feb 2013 13:26:00 +01 |
94.21.*.* | *.pool.digikabel.hu |
Lefordítottam egy 10.04-es Ubuntun. Most már elvileg mennie kéne. |
TCH (statz) | #1, Főfasz (10443) |
372 | #2383 | ^ | Idézet | Wed, 06 Feb 2013 14:08:25 +01 |
78.92.*.* | *.pool.t-online.hu |
Megy. Viszont a kimeneti fájlnál rákérdezhetne, hogy ha már létezik, akkor felülírja-e. Viszont a titkosítás iszonyatosan lassan megy. Egy 800k-s fájlt circa 10 percig titkosított nálam, ha egy byte-onként van cserélve a tábla. Milyen -O kapcsolóval forgattad? Ja és a véletlenszámgenerátorra mit használtál? Az rnd2()-t használtad vagy a Linux sajátját? |
kemi (statz) | #2, Főfasz (2970) |
499 | #2384 | ^ | Idézet | Wed, 06 Feb 2013 14:47:31 +01 |
94.21.*.* | *.pool.digikabel.hu |
Nálad van a hiba. Nálam egy 800k-s fájlt egészen pontosan 51 másodperc alatt titkosított (az se gyors, de nem 10 perc). Nem fgetc, fputc, hanem behúzza az egészet a memóriába, és azon dolgozik. A statusbar egyébként elég sokat belassít. Betegyek egy checkboxot, hogy kikapcsolható legyen?Default. Nem adtam neki optimalizáló kapcsolót. rnd2 |
TCH (statz) | #1, Főfasz (10443) |
691 | #2385 | ^ | Idézet | Wed, 06 Feb 2013 14:53:15 +01 |
78.92.*.* | *.pool.t-online.hu |
Érdekes. Vajon miért lassul be nálam ennyire? Az oké, de nem kéne pufferelni, mondjuk 16 vagy 64 megánként a dolgot? Mi van, ha egy nagyon nagy fájlt választanak ki, pl. egy DVD ISO-t? Inkább ne szerintem, max legyen kevésbé sűrűbb a statusbar, bár nem tudom mennyire sűrű most. Átdobod a forrkódot? Megpróbálom én is leforgatni magamnál és megnézem, hogy mi lesz. |
Prometheus (statz) | #3, Főfasz (1824) |
58 | #2386 | ^ | Idézet | Thu, 07 Feb 2013 13:59:14 +01 |
195.191.*.* | *.halozatszolgaltatas.hu |
Na. 15-e után kéne szervezni valami jót. Mit szóltok? THC? |
TCH (statz) | #1, Főfasz (10443) |
195 | #2387 | ^ | Idézet | Thu, 07 Feb 2013 16:10:57 +01 |
78.92.*.* | *.pool.t-online.hu |
Nyakig ülök a melóban és összesen van 2000 Ft a zsebemben, amit az utolsó utazásra tartogatok a céghez. Szorri. Ha meg is kapom a lóvét, akkor az rögtön megy a vízgázvillany triumvirátus zsebibe. |
kemi (statz) | #2, Főfasz (2970) |
229 | #2388 | ^ | Idézet | Thu, 07 Feb 2013 17:25:01 +01 |
188.143.*.* | *.pool.digikabel.hu |
http://wazz3g.uw.hu/bgafc_rc_cpp Az egész C++-ba konvertálva. De megeszem a kalapom, ha ez gyorsabb nálad. Itt az eredeti forrás, meg mellékeltem hozzá egy fordító szkriptet. |
TCH (statz) | #1, Főfasz (10443) |
2508 | #2389 | ^ | Idézet | Thu, 07 Feb 2013 19:27:22 +01 |
78.92.*.* | *.pool.t-online.hu |
Nem lett gyorsabb. Köszi a forrást, leforgattam, az is echte ugyanolyan lassú nálam. -O3 kapcsolóval már gyorsabb valamivel. És most leesett az órajelet nézve, hogy miért lassú nálam: nem megy fel a 800 MHz 2400-ra, amikor fut a thread. Lehet egy thread-et high priority-re rakni? Viszont a help gomb megfagyasztja az egész programot, amíg a böngészőt be nem zárod. Meg a help file-ban át kéne írni azt a 256256 értéket, hisz nem annyi az összes lehetséges tábla száma, hanem sokkal kevesebb, egy táblában minden kulcs különbözik. (Tudom ezt a marhaságot én írtam bele még a 2-es RC-nél, apropó az RC 2 feliratot is cserélni kéne benne, meg a ^ jelölt hatvány felírásokat sup tag-re.) Meg a múltkor nem esett le valami. Az oké, hogy a GTK2 csak előrefele enged iterálni, de miért kell neked egyáltalán iterálni a listboxot? Nem tömbben tárolod az egyes lépéseket? Sz*rk: Viszont eszembe jutott egy dolog. Ugye a CR1 az úgy megy, hogy simán buf[i] = table[buf[i]]; és csumi, ami jó, viszont a CR2 az meg úgy megy, hogy j = 0; while (table[j] != buf[i]) j++; buf[i] = (unsigned char)j;ami nem annyira gyors, lévén az a ciklus le fog futni n-szer. Helyette kellene egy másik tábla, amiben azt tároljuk, hogy az adott szám hanyadik helyen van és abból olvassuk ki. Vagyis lesz egy másik táblánk unsigned char table_pos[256]; néven és egy kicsit megváltozik a shuffletable() kódja is, mert a ciklus belseje így fog kinézni c = rnd2() & 255; /* itt nincs szukség typecastra, mind a ketto unsigned, sot GCC-ben ugyanazok, de ez csak javaslat */ table_pos[table[c]] = i; table_pos[table[i]] = c; /* alapesetben a table_pos[x] == x, tehat helycsere eseten itt a masik tabla c-edik pozicioja ami eddig c volt, most i lesz es vice versa */ temp = table[c]; table[c] = table[i]; table[i] = temp;és ezután a CR2 kicsit módosul, mert az elején az inicializálás így fog kinézni: unsigned long long int k; /* az "int" a legtobb forditoban csak 16 bites, de GCC-ben is csak 32, es filepos-ra celszeru 64 bites indexet hasznalni, abbol is unsignedet, de ez is csak javaslat */ for (k = 0; k < 256; k++) { table[k] = k; table_pos[k] = k; /* itt sincs szükseg typecastra */ }és a nagy ciklusban pedig a fent említett while ciklus kódja erre cserélődik ki: buf[i] = table_pos[i]; Ez szerintem elég jelentősen gyorsítana a CR2-n. |
kemi (statz) | #2, Főfasz (2970) |
1687 | #238a | ^ | Idézet | Thu, 07 Feb 2013 20:30:54 +01 |
188.143.*.* | *.pool.digikabel.hu |
Itt a glibc pthread.h doksija. Én nem találtam benne semmit, amivel prioritást lehetne növelni. Nálam nem. De próbáljuk meg úgy, hogy háttérfolyamatként indítja el. Több. 256!. Oké, cserélem. A gtkmm (C++ wrapper) tud rendesen indexelni, de nem tudom, hogy csinál-e valami alacsony szintű okosságot, vagy egyszerűen függvényt definiáltak rá. Az előrefele kódolónál még nem probléma, de a hátrafele kódolónál ki kell szedni egy tömbbe a lépéseket, vagyis egyszer végig kell iterálni a listán, aztán a tömböt már lehet a végétől az eleje felé feldolgozni. Ha meg lehetne hátrafele iterálni meg lehetne spórolni a tömbbe kiszedést. De mint már említettem, a gtkmm-ben van rendes indexelés. szerk: Köszi a tippet. A hátrafele kódoló egy 800k-s fájlon 58 másodpercről 18 másodpercre gyorsult. szerk2: Annyit még lehetne rajta javítani, hogy nem két külön táblát használni, hanem az egyik eljáráshoz így, a másikhoz úgy keverni a táblát. Azaz a két eljárás ugyanaz, csak más táblát használnak. |
TCH (statz) | #1, Főfasz (10443) |
1829 | #238b | ^ | Idézet | Thu, 07 Feb 2013 21:37:48 +01 |
78.92.*.* | *.pool.t-online.hu |
Ööö, mi? Én hülye vagyok matekból, de 256! = 8.578 * 10506 256256 = 3.232 * 10616tehát a hatványos verzió circa az oktodecilliárdszorosa a faktoriálisnak. De egyébként így átláthatóbb is: 1*2*3*...*256 < 256*256*256*...*256 Valamit elszámoltál a faktoriálisnál. Mondjuk én se voltam százas, amikor anno beírtam a 256256-ot. :P Javítod akkor faktoriálisra? De ezt kérdezem, hogy miért? Miért tárolod a listában a lépéseket? Nem lenne célszerűbb erre 3 db globális tömböt használni és azokat indexelni közvetlenül a lista előre és hátra iterálása helyett? char* passwords[]; /* faszomba vannak C-ben a stringtombok */ char modes[]; /* leven c-ben nincs boolean adattipus */ unsigned long long int regenerate[]; /* nem valoszinu, hogy valaki 8 milliard byte utan akarna uj tablat generalni, de lehet. meg ugye itt minusz se kell */És ennyi. Viszont most kipróbáltam, az újragenerálás mezője túlcsordul 2 milliárd után és mínusz szám lesz belőle. Szerintem legyen 64 bites unsigned. Vagy ha 64 bites nem is, unsigned mindenképpen. Nincs mit. Működött a visszakódolás vele (ergo visszakaptad az eredeti fájlt), vagy csak a sebességet nézted meg? |
kemi (statz) | #2, Főfasz (2970) |
973 | #238c | ^ | Idézet | Thu, 07 Feb 2013 23:11:56 +01 |
188.143.*.* | *.pool.digikabel.hu |
A beszúrásnál/törlésnél problémás a tömbök frissítése (igaz van erre C++-ban dinamikus tömb, a vector). De többek között ezért tértem át C++-ra, meg azért mert van rendes string, és így if (!strcmp(mode, "Mode_1"))helyett if (mode == "Mode_1")kevésbé szúrja a szemem. stdbool.h Fixálva. AFAIK az int mindig az az adattípus amit a proci a leghatékonyabban tud kezelni. 32 bites gépen 32 bites, 64 bites gépen 64 bites. A GCC-ben is így működik. |
TCH (statz) | #1, Főfasz (10443) |
1114 | #238d | ^ | Idézet | Fri, 08 Feb 2013 00:28:28 +01 |
78.92.*.* | *.pool.t-online.hu |
Ugyan már, le tudod te azt programozni, csak 3 db allokáció lenne a törlésnél/beszúrásnál. Ha nem is teszed be a release verzióba, pusztán teszt céljából kipróbálhatnád. Na, hát ott meg nem is akkora katasztróka. Mármint a dinamikus tömbök. My bad. Oké, de ahol 64 bit kell, ott 64 bit kell, én arra mondtam. 256 elemű tömböket nyugodtan iterálhatsz bármilyen szélességű regiszterrel, de egy fájlt még 32 bitessel is necces indexelni - kivéve persze, ha biztosan tudod, hogy nem nagyobb 28/16/32 byte-nál, de itt ugye bármilyen fájl lehet a bemenet. Amúgy ez, hogy a 32 bites proci 32 biten, 64 bites 64 biten dolgozik leghatékonyabban, ez csak a sux86-ra igaz. Más kérdés persze, hogy arra szól a release, szóval gyakorlatilag teljesen igazad van, de elméletileg csak részben. |
TCH (statz) | #1, Főfasz (10443) |
888 | #238e | ^ | Idézet | Fri, 08 Feb 2013 03:25:16 +01 |
78.92.*.* | *.pool.t-online.hu |
kemi van tipped erre a nyavalyatörésre? Megpróbáltam felrakni a VLC 2.0-át, amihez kellett 1.6-os LibXCB, le is forgattam, installnál azonban beszart és azóta megdöglött az egész tetves GCC. Nem talál semmit sem, pl. már az RC-t se forgatja le, ilyen fasságok ezreit dobálja: /usr/include/glib-2.0/glib/gmacros.h:40:20: error: stddef.h: Nincs ilyen fájl vagy könyvtár /usr/include/limits.h:125:26: error: no include path in which to search for limits.hés hasonlók, ha meg ./configure valahol, akkor meg checking whether the C compiler works... no configure: error: C compiler cannot create executablesVan ötleted mi a franc döglött meg és mit lehet vele kezdeni? Persze visszahúzhatnám a backupból az usr, etc és var könyvtárakat, de szeretném elkerülni. A GCC/G++/LibC/LibXCB újrarakása nem segített. Gondolom, hogy ez valami path probléma, de miféle? |
kemi (statz) | #2, Főfasz (2970) |
1812 | #238f | ^ | Idézet | Fri, 08 Feb 2013 14:14:21 +01 |
188.143.*.* | 188.143.*.* |
Na, csináltam egy kis kódtakarítást (nem használt változókat kitöröltem, meg egyebek), meg beleraktam az RC2 ikonját. A helpre még mindig lefagy nálad?Fent van az Ubuntu repoban bináris formában. Miért nem azt töltötted le? Egyébként valami elkúrhatta a $PATH változódat. Próbáld meg azt visszaállítani régebbi állapotra. Mivel túl vagyok több nyelven történő Gtk programozáson, elmondhatom, hogy a Pythonban az kurva jó, hogy nem toolkit, meg architektúra függő (a GTK2 meg a 3 is megérti ugyanazt a glade-et), nem kell 65536 félét forgatni, de ha számításigényes feladatot kell végezni elvérzik. Oké, hogy lehet függvényt írni C-ben, de annak csak alaptípusokat lehet átadni, és nem tudsz belőle mondjuk egy progressbart frissíteni. Aztán meg plusz időt vesz igénybe az adattípusok Pythonból C-be, aztán C-ből Pythonba konvertálása is. Gyanítom a Javascriptel is ugyanez a helyzet, meg azt ráadásul nem is alkalmazásfejlesztésre találták ki. A Seed nem tudom mennyire gyors, bár a Rhinonál biztos gyorsabb, de fölösleges erőltetni, mint elsődleges nyelv. A C kicsi és hatékony binárist fordít, csak a forrás iszonyat ronda, átláthatatlan fos, meg aztán ott vannak a Gtk blődségei amit nem lehet kikerülni. A C++ viszont vetekszik a Python olvashatóságával (ha bekommentezed a blokkvégeket, nekem szokásom :P), viszont olyan hatékony mint a C kód. Az RC-nél a kódolóeljárások standard C-ben vannak írva, csak a GUI C++. Nekem marad a C++ mint elsődleges nyelv, a GNOME fejlesztőknek meg nem kéne erőltetni a js-t. |