Hirdetés
-
Toyota Corolla Touring Sport 2.0 teszt és az autóipar
lo Némi autóipari kitekintés után egy középkategóriás autót mutatok be, ami az észszerűség műhelyében készül.
-
Egyre nagyobb a balhé a Helldivers II körül
gp Úgy tűnik, hogy egyre több sötét felhő kezd gyűlni a játék körül a Sony döntése miatt.
-
iPaden is vége az App Store monopóliumának
ma Ősztől lehet alternatív alkalmazásboltból telepíteni az EU tagállamaiban.
Új hozzászólás Aktív témák
-
martonx
veterán
válasz [pod]Diablo #1999 üzenetére
Mi lenne, ha a gombokat gomb1, gomb2, ... néven hívnád. Így gombnyomáskor a gomb nevéből meg tudod állapítani, hogy hanyadik elem.
Én kérek elnézést!
-
fatal`
titán
válasz martonx #2001 üzenetére
LOL hogy ez nem jutott eszembe, pedig régen én is ezt csináltam. De ott van még a tag property is, de ha jól látom azt már valami másra használja.
Esetleg ha nem akarja átnevezni őket, akkor kacifántosabban le lehet származtatni a buttonból egy osztályt, aminek csinál egy int propertyt erre a célra, és abban tárolja, hogy hanyadik elem a tömbben, így elég azt lekérdezni.
-
kingabo
őstag
válasz [pod]Diablo #1999 üzenetére
Ha pl egy groupbox-ot használsz amibe csak a gombok vannak, akkor így is megkapod a sorszámát a gombnak:
int sorSzam = groupBox1.Controls.IndexOf((Control)sender);
A sorrendet a gb-hez való hozzáadás fogja jelenteni. (ha kódból pakolod bele, akkor a korábbinak lesz a kisebb sorszáma, ha az összehúzogatós felületen raktad össze a gui-t, akkor fordított)(#2002) hunfatal: folyamatosan növel egy i változót.
(#2005) emonitor: megelőztél. De ennek így mi értelme? Kell ehhez még egy plusz változó amit szintén karban kell tartanod... Ha azt kiveszed, akkor meg megkaptad a for-t.
[ Szerkesztve ]
-
#90999040
törölt tag
-
fatal`
titán
válasz #90999040 #2008 üzenetére
Ez rendben van csak te bevezettél még egy i változót, itt meg nem azt csinálja.
Mondjuk gondolom én nincsen 120 000 gombja így a sebességkülönbség majdhogynem elhanyagolható és sokkal szebb a kód a sima forral, mint a plusz változóval, amit külön kell kezelni.
De egyébként az egész úgy is kuka, mert névre keres akkor sima foreach.
-
fatal`
titán
válasz #90999040 #2010 üzenetére
De igen csak a ciklus végén meg is szűnik. Ellentétben a tieddel ami ottmarad a függvény végéig.
Továbbra is azt mondom hogy jelen esetben a sima for szebbé teszi a kódot és a sebességkülönbség elhanyagolható.
Persze ha 150 000 gombja van akkor más a helyzet.
[ Szerkesztve ]
-
bpx
őstag
válasz #90999040 #2008 üzenetére
"A név szerinti keresés szerintem gyorsabb. De ha ez nem lehetséges, akkor a for helyett a foreach talán gyorsabb."
majd az általad linkelt cikkben:
"Therefore, I strongly feel if you are planning to write high performance code that is not for collections, use for loop. Even for collections, foreach may look handy when using, but it's not that efficient. Therefore, I strongly recommend everyone to use for loop rather than foreach at any stage."
-
Lortech
addikt
Mondjuk itt elég nagyvonalú, amikor collectionst említ, mikor kb. az indexerrel rendelkezőkre gondol. Mi van például egy linkedlisttel, stackkel, queue-val for esetén.. Én nem állnék neki kézzel iterálni ezeket, inkább foreach / getEnumerator, többet ér egy olvasható kód, mint 10 milliszekundum.
Fordítva is igaz, ha index is kell, akkor meg inkább for, ha van indexere a típusnak, ha meg nincs, úgyis csúnya lesz.Thank you to god for making me an atheist
-
shev7
veterán
válasz Lortech #2016 üzenetére
itt nem is ez a lenyeg, hanem sokkal inkabb az, hogy a kolega azt allitotta, hogy a foreach gyorsabb mint a for, majd linkelt egy irast, ami pont az ellenkezojerol beszel...
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
#90999040
törölt tag
válasz kingabo #2012 üzenetére
Volt egy kis időm, így sikerült leellenőriznem. Pont az ellenkezője jött ki, mint amire számítottam. Az eltérés -3 / +3 % volt a 2 között. A foreach azonban kis méretű tömbnél és/vagy kevés hívás esetén volt gyorsabb, nagy méretű tömb és/vagy sokszori hívás esetén pedig a for volt gyorsabb. Az eltérés azonban mindkét esetben minimális volt. Mondjuk 1 millós tömb és 1000-szeri meghívás esetén 0,4 másodperc volt az eltérés a for javára.
shev7 és -Zeratul- : igazatok van, ezt benéztem.
Mindenesetre az is érdekes, hogy az equals itt is csak akkor haszálható, ha előtte "=" (tehát értékadással) lett a 2 button egyenlővé téve.
-
-
#90999040
törölt tag
válasz kingabo #2024 üzenetére
Jó, csak, hogy objektív eredményt kapjak, ahhoz elég sok folyamatot le kell állítani.
Az előző tesztnél is 1 milló Button-nál a lapozófájl mérete 406 milló bájttal növekedett és a teszt alatt a proci 100%-on ment.De azért ezt is leteszteltem.
void ciklus0()
{
int i = 0;
i++;
}
void ciklus1()
{
int i = 0;
++i;
}
Ezeket hívtam meg 100 millószor. Az eredmény:
120,815924676848 sec. a ciklus0-ra és
120,841825454048 sec a ciklus1-re
az eltérés 0,020 %, tehát nagyon minimális.
Egyébként a tesztelő programot elteszem, mert még máskor is jól jöhet, de mondjuk sűrűn nem használom a proci terhelése miatt. -
#90999040
törölt tag
válasz #90999040 #2027 üzenetére
Jó volt a meglátásom. Megnéztem assembly-ben a kódokat. Íme:
A ciklus0(); :
.method private hidebysig instance void ciklus0() cil managed
{
// Code size 8 (0x8)
.maxstack 2
.locals init ([0] int32 i)
IL_0000: nop
IL_0001: ldc.i4.0
IL_0002: stloc.0
IL_0003: ldloc.0
IL_0004: ldc.i4.1
IL_0005: add
IL_0006: stloc.0
IL_0007: ret
} // end of method Form1::ciklus0A ciklus1(); :
.method private hidebysig instance void ciklus1() cil managed
{
// Code size 8 (0x8)
.maxstack 2
.locals init ([0] int32 i)
IL_0000: nop
IL_0001: ldc.i4.0
IL_0002: stloc.0
IL_0003: ldloc.0
IL_0004: ldc.i4.1
IL_0005: add
IL_0006: stloc.0
IL_0007: ret
} // end of method Form1::ciklus1 -
bpx
őstag
csak hogy kötözködjek egy picit
static void Main(string[] args)
{
long a;
long start1 = DateTime.Now.Ticks;
for (long i = 0; i < 20000000000;)
a = i++;
DateTime dt = new DateTime(DateTime.Now.Ticks - start1);
Console.WriteLine("i++ : {0} sec, {1} ticks", dt.Second, dt.Ticks);
long start2 = DateTime.Now.Ticks;
for (long i = 0; i < 20000000000; )
a = ++i;
dt = new DateTime(DateTime.Now.Ticks - start2);
Console.WriteLine("++i : {0} sec, {1} ticks", dt.Second, dt.Ticks);
Console.ReadLine();
}i++ : 51 sec, 519749728 ticks
++i : 49 sec, 492008142 ticks
i++ : 52 sec, 521009800 ticks
++i : 49 sec, 492998197 ticks
i++ : 52 sec, 520389764 ticks
++i : 49 sec, 493708238 ticksakárhányszor futtatom, megvan a 2,6-2,7 mp körüli különbség
a másodiknál assembly-ben kevesebb a mov
[ Szerkesztve ]
-
takyka77
tag
Sziasztok!
Azt szeretném kérdezni, hogy a Visual Studio 2010. Professional változatot hány gépen tudom használni, ha megvásárolom? -
Lortech
addikt
válasz takyka77 #2035 üzenetére
hali.
Idézet az EULA-ból:
[...]
1. OVERVIEW.a. Software. The software includes development tools, software programs and documentation.
b. License Model. The software is licensed on a per user basis.
2. INSTALLATION AND USE RIGHTS.
a. General. One user may install and use copies of the software to design, develop, test and demonstrate your programs. You may not use the software on a server in a production environment.
[...]Ebből én azt szűröm le, hogy szerver gépet leszámítva akárhány gép(ed)re felinstallálhatod, de csak te használhatod értelemszerűen.
[ Szerkesztve ]
Thank you to god for making me an atheist
-
-
amargo
addikt
Ha már így license kérdések vannak, akkor a VSProwMSDN ALNG LicSAPk OLP NL Qlfd esetén miket rakhatok fel? Kimondottan az Expression blend érdekelne.. vagy ezt is meg kell venni?
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
tamas60
csendes tag
Kellene egy olyan program ami nagy négyzetbe optimálisan el tudna helyezni adatbázisban szereplő kis négyzeteket. A programot C++ ban kellene megírni.
Akit érdekel a téma keressen meg.
Ha nem jó helyre írtam bocsánat, és kérnék egy tippet hol van ennek a kérésnek helye. -
Alkimista
csendes tag
válasz kingabo #1992 üzenetére
Először is köszi a választ.
Nem meggyőzni akartalak csak a problémára megoldási javaslatot Sajna nem mondhatom meg egy cégnek sem, hogy holnaptól sql servert vagy éppen orclet használjon, még csak azt sem hogy ezek melyik verzióját. Legtöbb helyen SQL server 2000 van és nem is tervezik hogy más verzió bevezetését.
Nem egy cégnél van 2 fajta adatbázis hanem cégenként eltérő. Nem én találtam ki ezt a megoldást, csak örököltem a problémát.
Bocs hogy nem fogalmaztam egyértelműen, szép napot.
Alkimista
-
robotjatek
tag
Sziasztok! Lenne egy nagyon egyszerű kérdésem az objektumokkal kapcsolatban.
Legyen egy világ, benne sok objektummal, a példa kedvéért legyenek ők mondjuk "Emberek". Ezek az emberek élik a saját kis életüket, most random sétálgatnak. Mondjuk jelenítsük meg a helyzetüket egy konzol ablakban, de ez a feladat szempontjából igazából most lényegtelen.
A kérdés: Hogy lehet elegánsan megoldani azt, hogy ugyanarra a koordinátára ne léphessen két "ember"? Tehát, ha mondjuk a (13;14) ponton van már egy objektum, akkor lépjen máshova. -
fatal`
titán
válasz robotjatek #2047 üzenetére
Létrehozáskor végigmész a tömbön/listán, amiben a többi objektum van és ellenőrzöd.
[ Szerkesztve ]
-
martonx
veterán
válasz robotjatek #2047 üzenetére
csinálsz egy kétdimenziós boolean tömböt, amiben nyilvántartod, hogy melyik objektum, éppen hol van. Ahol van, azt 1-el jelölöd, ahol senki nincs azt nullával. Amikor átlép az objektum egyik mezőről a másikra, akkor ellenőrzöd az ütközést, átfrissíted a tömb két elemét.
Én kérek elnézést!
-
MaUser
addikt
válasz robotjatek #2047 üzenetére
Annyit fűznék csak hozzá, hogy minden ilyen esetben a probléma a sparse array problémája. Legjobban olvasható megoldás a 2 dimenzió look-up tömb használata (ahol az indexek a koordináták és az elemek az emberek sorszáma), de ha nagy a világ és kevés benne az ember, akkor list-be illik felfűzni az emberek sorszámát és aktuális pozíciójukat tároló object-eket, majd a listát bejárva azt frissítgetni.
''A file-cserélés öli meg a filmipart? Inkább a filmipar öli meg a file-cserélést. 2 hónapja nincsen semmi értelmes film, amit érdemes lenne letölteni...''
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Milyen videókártyát?
- Samsung Galaxy A54 - türelemjáték
- Autós topik
- BestBuy topik
- Házimozi belépő szinten
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Luck Dragon: Asszociációs játék. :)
- Androidos tablet topic
- bb0t: Gyilkos szénhidrátok, avagy hogyan fogytam önsanyargatás nélkül 16 kg-ot
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- További aktív témák...
- Lenovo Legion 7, 16,0"WQXGA, Ryzen 9 6900HX, 32 GB DDR5, RX6850M XT 12 GB, 1TB SSD, 1,5+ év garancia
- Corsair RM850e 850W Gold Moduláris Tápegység
- Samsung Odyssey Neo G9 Super Ultrawide Gamer Monitor!49"/Mini LED/5120x1440/240hz/1ms/+Ajándék
- Apple Macbook Pro 16" 2019 i7-9th 6Magos 32/512 -75% Touch Bar HUN Radeon Pro 5300M 4GB 3K Retina
- Apple Mac mini M2 2023 8GB 256GB + Xiaomi Mi Desktop 27"-os FullHD monitor egyben
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen