Kezdőoldal » Számítástechnika » Programozás » Milyen nyelven és milyen...

Milyen nyelven és milyen hardverrel érdemes megcsinálni ezt a feladatot, hogy a leggyorsabb legyen?

Figyelt kérdés

Adva van egy alkönyvtár, faszerkezettel, benne fáljok, képek is, elszortan. Kb ezer kép, kb. 3000 más fájl.

Legyen ez "A" alkönyvtár.


Adva van egy másik alkönyvtár, de abban faszerkezet nélkul, csak képek, kb. 10 000 kép.

Legyen ez "B" alkönyvtár.


A végcél az, hogy ebben a 10 000 db-os alkönyvtárban szétválassza a képeket alkönyvtárakba.

1-es alkönyvtárba azt, ami nem szerepel a B alkönyvtárba, de megfelel bizonyos szabványnak. (pl. a fálj nevének a tizedik betuje csak "z" lehet, a kiterjesztése meg jpg.

2-es ugyanez, de png.


2020. máj. 7. 11:13
1 2 3
 1/25 A kérdező kommentje:
elnézést, még folytatom.
2020. máj. 7. 11:14
 2/25 A kérdező kommentje:

3-as ugyanez de tif, 4-es BPM.

5, 6, 7, 8 olyan aminek a neve nem szerepelt meg ezeknek a szabványoknak, nem szerepel a 1,2,3,4 alkönyvtárakban. És ugyanugy kiterjesztés alapján van válogatva.


Elnézést azt elfelejtettem irni, hogy egyforma képek esetén (bittérkép egyezés) csak egyszer kerul be az 1,2,3,4, 5, 6, 7, 8 alkönyvtárakba, s amiből bekerult az 1,2,3,4 valamelyikébe abbol értelemszerüen már nem kerül be az 5,6,7,8 alkönvtárakba.


Utána pedig a 9,10,11,12,13,14,15,16 alkönyvtárakba azok a képek kerulnek be amik megfeleltek a fenti feltételeknek, de az 1,2,3,4,5,6,7,8 alkönyvtárak valameyikében már van 1 db.


Nem maga a program szerkezete érdekel, az programozás szempontjábol egy tiszta kérdés, kissé bonyolult ciklusok és feltételek rendszere.


Hardver szempontjábol gondolom az a célszeru, ha a legelején ramba tölti az egészet s ramból válogat. Mert a betöltési idő ugyan aránylag nagy, de akkor csak egyszer kell betölteni s utána rambol válogat sokkalta gyorsabban. De hogy ehhez melyik processzor a célszeru ami azért nem csillagászati, azt nem tudom. Eleve mennyit számit egy gyorsabb ram s ahhoz milyen alaplap kell, s milyen processzor hogy egyik se fogja vissza a másikat? Kéne egy megvásárolhato legjobb rendszer adata és egy olyan aminek "értelmes ára van" vagyis a számitogép maga 100-200 000 Ft között legyen.

Feltételezem, hogy duál egyetleg 4-es ram célszerubb mint 1 nagy ram.


Programnyelv szempontjábol meg nem tudom, mellyek a leggyorsabbak egy ilyen tipikus feladatra.

2020. máj. 7. 11:26
 3/25 anonim ***** válasza:

Mi a cél? Mert 10000 kép nem egy nagy mennyiség... mért kell nagyon gyorsnak lenni? Percenként többször kéne lefuttatni?


Nagyon egyformák a képek, pl pontosan egyforma felbontás és csak pár pixelben tér el? Mert ha nem, akkor elég gyorsan kiderül, hogy 2 kép egyezik-e vagy nem. (Ha jól értem a fájl binásis tartalma tejelsen irreleváns, hiszen az nem számít, csak a pixelek.) vagy sok olyan eset van, hoy binárisan is megegyezik a 2 fájl teljes mértékben? Ha igen, akkor lehet célszerű ezeket előre kiszűrni.


Igen, érdemes betölteni az összes fájlt, miven a pixel szintű összehasonlításhoz ki kell őket tömöríteni. Befér az összes fájl kitömörítve a memóriaba? (fájl * szélesség * magasság * 3 vagy 4 byte + kis overhead)


A programozási nyelv sztem teljesen irreleváns, nem lesz lényeges különbség egyikben-másikban, ha jól van megírva a kód.


Hw: Nyilván SSD számít a beolvasási sebességnél... és a proci az összehasonlításnál. Szóval minél jobb, annál gyorsabb lesz.

2020. máj. 7. 11:45
Hasznos számodra ez a válasz?
 4/25 A kérdező kommentje:
Mind a 10 000 képnél végig kell nézni az ezer képet, ezért hosszu az idő. A tömörités nem gond mert feltételezem ugyanazt a kpet ugyanugy tömöriti egy egy formátom, zip-el és egyébbel meg nincs tömöritve semmi. A ciklusok, feltételek minden nyelvben kb egyforma idejuek? Mert ha igen akkor csak a ramba töltés a gyenge pont, hisz az SSD-HDD sebesség alig játszik, mert azt csak egyszer kell megcsinálni, nem 10 000*1000-szer
2020. máj. 7. 12:01
 5/25 anonim ***** válasza:

"végig kell nézni az ezer képet, ezért hosszu az idő"


Ezért kérdeztem, hogy mennyire különbözőek a képek? Sztem rendezd sorba, akkor tudsz binárisan keresni.... de ha nagyon különböző képek, akor már az első pár pixelből kiderül hogy aznos-e.


Szoval 1000 kép összehasonlítás gyakorlatilag 0 millisec, ha jól van megírva az algoritmusod. Szóval az összes összehasonlítás/keresés baromi gyors.. a szűk keresztmetszet a betöltés és kitömörítés.

2020. máj. 7. 12:40
Hasznos számodra ez a válasz?
 6/25 anonim ***** válasza:

"az első pár pixelből kiderül hogy aznos-e"


Illetve az derül ki, hogy különböző-e.... de azonosság meg max 1-nél lesz, ha jól értem, teáht az nem gond...


Illetve számolhatsz hash-et minden képre... (nem az eredeti bináris adatra, hanem a kitomorített pixelekre és kép felbontásra).... tehát SSD és proci számít.


A betöltést egysszerűen párhuzamosíthatod, szóval jobb a az proci ami többszálú mint amelyik kevesebb, de szálanként gyorsabb. (Nyilván megfelő paraméterek esetén)

2020. máj. 7. 12:45
Hasznos számodra ez a válasz?
 7/25 anonim ***** válasza:

"A ciklusok, feltételek minden nyelvben kb egyforma idejuek?"


Pythonban, javascriptben és PHPban nem kezdenék neki, de amúgy sztem tökmindegy, hogy C/C++/C/Java/Pascal/Assembly

2020. máj. 7. 12:48
Hasznos számodra ez a válasz?
 8/25 anonim ***** válasza:
Mármint a 3. C# akart lenni.
2020. máj. 7. 12:48
Hasznos számodra ez a válasz?
 9/25 anonim ***** válasza:

"az SSD-HDD sebesség alig játszik, mert azt csak egyszer kell megcsinálni"


Azért nem mindegy, hogy 1-200 MB/sec-kel töltöd be a képeket vagy 1-2 GB/sec-kel... a mai modern SSD-k nagyon gyorsak.. nyilván megfelelő csatolóval, nem SATA


Amúgy nem tudom mit gondolsz ennek a feladatnak a futásidejéről, de egy jó algoritmussal egy erősebb otthoni géppel perces nagyságrendű futással megoldható.

2020. máj. 7. 12:53
Hasznos számodra ez a válasz?
 10/25 A kérdező kommentje:
nem 1 alkalommal lenne lefuttatva hanem sokszor. az 1000 képes rész állando, ugy értem ugyanaz az alkönyvtár, de növekvő kképszám, mert ami nincs benne a 10 000 képben és megfelel a feltételnek ("z") az belekerul. Ellenben elég gyakori a kép egyezés, mert sok képről készult korábban másolat, valamint egy más irányu fejlesztés maradékárol van szo, s a cél az, hogy egy kép se vesszen el ellenben minden képről csak 1 legyen kiválasztva ha még nem szerepel. Volt példa 27000 ugyanolyan képre is, igaz az félmillio képből kerult ki. Az akkor 10 napig futott, igaz ott végig kellett bogarászni a 27 000 képet mert csak a végére derult ki hogy egyezik, sok képből volt hasonlo egyezést 5-10-15 000 db-os, ott minen esetben betöltötte s ugy vizsgálta, mert félmillio képnyi ram nem volt, de még az ssd-n se volt annyi szabad hely. És maga a kod is csak hevenyészetten volt öszerakva, nem ideális modon futott. Igaz ráadásul a válogatás szempontja se volt idealizálva mert ahhoz kulön program kellett volna ami megállapitja milyen irányban lenne érdemes kezdeni a válogatást. Csak el lett inditva egy hevenyészett algoritmus, aztán tart ameddig tart. De gyanitom, hogy ha félmillio képnél nem is percek, de azért messze nem 10 nap lett volna. (Ja és az 1000 kép se annyi volt, hanem 3000, mert akkor még abban is voltak ismétlődések, az első cél csak az volt hogy az újak ne ismétlődjnek.) Pont ezért kéne egy sokkalta ideálisabb megoldás, hogy percekből ne legyen 10 nap
2020. máj. 7. 13:11
1 2 3

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!