2x ViewSonic VP-27885K | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI
Ik denk niet dat je als scholier hier kunt klagen over vakantie/proefwerkweek. Wij zitten gemiddeld op misschien 24-26 dagenF.West98 schreef op zaterdag 19 oktober 2013 @ 15:02:
Joepie... VAKANTIE
Met direct daarna een proefwerkweek
En dan nog, proefwerkweek is toch ook één grote grap? Vond dat altijd zo dom simpel. (was altijd de stof van alle voorgaande toetsen bij ons).
Van mij is het echter geen "proefwerkweek", maar een volwaardig examen van een universiteitsvak hier in Oostenrijk... Het voordeel van lessen geven in blokken (vak per vak).F.West98 schreef op zaterdag 19 oktober 2013 @ 15:02:
Joepie... VAKANTIE
Met direct daarna een proefwerkweek
In dit geval:douweegbertje schreef op zaterdag 19 oktober 2013 @ 15:26:
[...]
Ik denk niet dat je als scholier hier kunt klagen over vakantie/proefwerkweek. Wij zitten gemiddeld op misschien 24-26 dagen![]()
En dan nog, proefwerkweek is toch ook één grote grap? Vond dat altijd zo dom simpel. (was altijd de stof van alle voorgaande toetsen bij ons).
Alle stof van zomervakantie tot nu.
Ik zeur niet, alleen jammer. Als ze het nou vóór de vakantie deden...
edit:
Ah damned, nog steeds kapot
[ Voor 4% gewijzigd door F.West98 op 19-10-2013 15:46 ]
2x ViewSonic VP-27885K | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI
Die vakantie is toch juist zodat je alles rustig kan leren (met een beetje vermaak als afwisseling). Daarnaast hulde voor jouw school als ze telkens alle stof in elk tentamen/proefwerk doen. Dat zorgt ervoor dat tegen de tijd dat je je examens hebt je alles nog weet en niet meer hoeft te leren. Ik had zowat een moord gedaan als ze dat bij mij hadden gedaan. Dan was ik nu niet meer dan 90% van de stof vergeten waar ik 6 jaar (6F.West98 schreef op zaterdag 19 oktober 2013 @ 15:46:
[...] In dit geval:
Alle stof van zomervakantie tot nu.
Ik zeur niet, alleen jammer. Als ze het nou vóór de vakantie deden... [...]
oh, alleen bij F.West98é
[ Voor 25% gewijzigd door Douweegbertje op 19-10-2013 16:10 ]
I thought fail2ban would keep the script kiddies out but somehow you still seem to be able to login.
Klein puntje daarbij in februari begin in aan de universiteit twenteVerwijderd schreef op zaterdag 19 oktober 2013 @ 16:06:
Je werkgever zal blij zijn met zulk doorzettingsvermogen
[ Voor 3% gewijzigd door Ealanrian op 19-10-2013 16:19 ]
Ik heb een quote-zonder-reload scriptje maar jQuery doet kennelijk alleen maar aan UTF-8 en t.net alleen maar aan iso-nogwat. Dat wil niet
Verder, waarom kan je geen Cascade paths instellen? Zou zo handig zijn, specifieke cascade paths als iets verwijderd wordt...
Ik kan natuurlijk ook voor regel 2 gaan, maar da's een groot risico en onhandig als het groter wordt
edit:
Toch maar een topic
\[.NET/MSSQL] Verwijderen entities geeft foutmelding?
[ Voor 33% gewijzigd door F.West98 op 19-10-2013 18:09 ]
2x ViewSonic VP-27885K | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI
We hebben het anders nog niet gehad over waarom de code afgezien van die compile error fout isCaelorum schreef op zaterdag 19 oktober 2013 @ 14:45:
Heh, weer wat geleerd over C++ ^^ thnx @ Darkstone en .oisyn
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Wil je misschien nog hier reageren: totaalgeenhard in 'nieuws: Nintendo wil browserversie Super Mario van Amerikaanse student offline halen'
(tenminste, had je nou Doom of en andere shooter gebouwd [zonder de fancy smancy HTML5 hypewoord :P])
Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.
Wellicht heeft jouw Particle class niet echt een boeiende constructor, maar:Verwijderd schreef op zaterdag 19 oktober 2013 @ 18:48:
Ik vraag me af waarom de code dan volgens jou fout is?
1
2
| std::vector<std::string> strings(10, "aap"); new (&strings[0]) std::string("noot"); // memory leak |
Het punt is dat je gewoon keihard een object construct over een al ander geconstruct object. Eigenlijk moet het origineel eerst gedestruct worden, en pas daarna is dat geheugen garbage en kun je ermee doen wat je wilt.
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Verwijderd
De daadwerkelijke data wordt als SoA opgeslagen met met SSE/AVX bewerkt.
[ Voor 24% gewijzigd door Verwijderd op 19-10-2013 20:34 ]
Ik ben nu al een half uur aan het proberen om -pthreads in autotools erbij te krijgen
2x ViewSonic VP-27885K | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI
Verwijderd
-pthreads heb je toch niet nodig voor c++0x? Gebruik std::thread?Robbiedobbie schreef op zaterdag 19 oktober 2013 @ 20:50:
AUTOTOOLS,Y U NO WORK
Ik ben nu al een half uur aan het proberen om -pthreads in autotools erbij te krijgenFor some reason wil het maar niet lukken. Zo krijg ik nooit mijn c++0x threads werkend
Ik wou gisteren een topic maken. Toen ik halverwege was dacht ik 'dit is de oplossing'. Dat bleek toch niet zo te zijn. Dus ik ging verder met het topic.F.West98 schreef op zaterdag 19 oktober 2013 @ 20:55:
Toch mooi hoe je door het uitleggen van je probleem het antwoord al snapt
Nog een paar regels later dacht ik weer de oplossing te hebben maar dat bleek ook niet te werken. dat herhaalde zich nog een keer, en dat werkte correct
Wanneer je in linux std::thread gebruikt, heeft hij op de achtergrond -pthread nodig. Wanneer je dit niet doet, compiled alles wel, maar wanneer je probeert te runnen, krijg je de meldingVerwijderd schreef op zaterdag 19 oktober 2013 @ 21:05:
[...]
-pthreads heb je toch niet nodig voor c++0x? Gebruik std::thread?
1
2
| terminate called after throwing an instance of 'std::system_error' what(): Enable multithreading to use std::thread: Operation not permitted |
Verwijderd
1
2
3
4
5
6
| int maxJobs = _numJobs.load( ); // _numJobs = std::atomic<int> prefetchw [rbx+14h] mov eax,dword ptr [rbx+14h] mov ecx,eax lock cmpxchg dword ptr [rbx+14h],ecx jne voxel!vxWorkerThread::run+0x65 (00007ff6`46b5fd05) |
Gebruik gewoon mov x, y, die bied op x86 al SC garantie
http://connect.microsoft....o/feedback/details/770885
Maakt niet uit.. De term kende ik niet en de constructie ook niet. En ben dan nieuwsgierig en slim genoeg om google te gebruiken om het een en ander er over te weten te komen.oisyn schreef op zaterdag 19 oktober 2013 @ 18:34:
[...] We hebben het anders nog niet gehad over waarom de code afgezien van die compile error fout is
W..T..F.. Had nog niets met std::atomic gedaan, maar dat blijf ik voorlopig ook maar niet doenVerwijderd schreef op zaterdag 19 oktober 2013 @ 21:40:
Wat de fuck is dit.
code:
1 2 3 4 5 6 int maxJobs = _numJobs.load( ); // _numJobs = std::atomic<int> prefetchw [rbx+14h] mov eax,dword ptr [rbx+14h] mov ecx,eax lock cmpxchg dword ptr [rbx+14h],ecx jne voxel!vxWorkerThread::run+0x65 (00007ff6`46b5fd05)
Gebruik gewoon mov x, y, die bied op x86 al SC garantie
http://connect.microsoft....o/feedback/details/770885
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Verwijderd
Maar als ik zie op wat voor systeem hij dat heeft getest, dan beginnen mijn wenkbrouwen toch wel te fronsen...
Echt zo'n systeem waarvan de kans nul komma nul is om deze in het wild tegen te komen. En Bjarne gebruikt niet eens OS X, hij heeft een thinkpad...We ran performance tests on an Intel IA-32 SMP machine with two 1.83GHz processor cores with
512 MB shared memory and 2 MB L2 shared cache running the MAC OS 10.4.6 operating system.
http://www.stroustrup.com/lock-free-vector.pdf
Het komt in principe toch gewoon neer op:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| struct Node { Node * pNext; } Node * volatile pHead = 0; void Push(Node * n) { Node * pOldHead; do { pOldHead = pHead; n->pNext = pOldHead; } while(InterlockedCompareExchangePointer(&pHead, n, pOldHead) != pOldHead); } Node * Pop() { Node * n; do { n = pHead; } while(InterlockedCompareExchangePointer(&pHead, n->pNext, n) != n); n->pNext = (Node*)1; // make sure we catch errors } |
Of ben ik nou gek
Toch zie ik dan vervolgens regelmatig een Node op de lijst belanden met een 1 als pNext. De enige verklaring die ik kan verzinnen is dat een Node gewoon meerdere keren gepusht wordt (wat betekent dat mijn test fout is), maar dat lijkt vooralsnog niet het geval. Zal daar eens wat extra guards voor inbouwen.
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Verwijderd
Edit: bij nader inzien ziet die er behoorlijk inefficiënt uit..
Voor zover ik kan zien klopt je algoritme, het enige wat ik kan bedenken is dat de compiler ergens iets doet wat hij niet mag doen.
[ Voor 54% gewijzigd door Verwijderd op 20-10-2013 13:15 ]
De pitfalls die daar besproken worden zijn niet op mijn code van toepassing... dácht ik. Nodes verdwijnen bij mij nooit, dus ik ging er vanuit dat het ABA probleem niet erg was (thread 1 pakt node A, thread 2 popt A pusht A weer terug, thread 1 denkt dat head ongewijzigd is). Maar ik bedenk me nu dat A->next dan wellicht niet meer naar de juiste waarde wijst - als tread 2 A én B popt en A weer pusht, dan ziet thread 1 A->next = B, maar B staat niet meer op de lijst.
Eens kijken of een FIFO queue wel fatsoenlijk te implementeren is.
[ Voor 9% gewijzigd door .oisyn op 20-10-2013 14:13 ]
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Zit alleen een fout in mijn berekening...
Ik laat de stippen vanuit het midden naar een willekeurige richting naar buiten "vliegen" met allemaal dezelfde snelheid. Wanneer een stip buiten beeld valt, verwijder ik 'm en spawn ik een nieuwe.
Je verwacht dan een mooie groeiende cirkel in het begin (ik spawn er direct 20.000) maar ik krijg dit:

Ik haat gonoeem...eeuh...geniom...eeuh...driehoekberekeningen.
Let op: Mijn post bevat meningen, aannames of onwaarheden
Verwijderd
Ja. Piece of cake:.oisyn schreef op zondag 20 oktober 2013 @ 13:42:
Eens kijken of een FIFO queue wel fatsoenlijk te implementeren is.
pop any:
1
2
3
4
5
6
| int index = 'index welke te verwijderen'; // move 'begin' into 'the index' _jobArray[ index ] = _jobArray[ _beginJobs % MAX_JOBS ]; _beginJobs++; |
push_back
1
2
3
4
| // insert first _jobArray[ _endJobs % MAX_JOBS ] = newJob; // THEN increment endJobs InterlockedIncrement( &_endJobs ); |
.. met een circulair buffer.
Let op: deze code is geschreven onder de assumptie dat thread 1 alleen push uitvoert en thread 2 alleen pop. Daarom heb ik bij pop geen interlocked nodig (en bij push misschien ook niet)
Code voor software waar de performance, in tegenstelling tot bij PHP, wel van belang isdouweegbertje schreef op zondag 20 oktober 2013 @ 14:57:
Wat is dat voor soort code? Ik heb amper C++ ervaring (beetje basic en PHP kan ik) maar ik ben af en toe aan het knutselen. Echter als ik bezig ben met een simpele applicatie kom ik dat soort code vrijwel niet tegen
[ Voor 6% gewijzigd door Verwijderd op 20-10-2013 15:17 ]
Let op: Mijn post bevat meningen, aannames of onwaarheden
au, beetje jammer want ik snap je flame op PHP wel maar dit argument is dan net weer een beetje jammer.Verwijderd schreef op zondag 20 oktober 2013 @ 15:16:
[...]
Code voor software waar de performance, in tegenstelling tot bij PHP, wel van belang is
Ik zit een applicatie te herschrijven met PHP waarbij laadtijden wel degelijk van groot belang zijn, volgens mij geldt dit in vrijwel elke taal
Verwijderd
Daarnaast als je je met PHP zorgen maakt over de vraag of je datastructuur wel of niet lock-free is... ik zou zeggen dat je dan de verkeerde taal hebt gepakt. Je gaat pas kijken naar lock-free als de performance mission critical is, want het kost gewoon heel veel moeite om goed werkend te krijgen.
Sorry maar met mijn kennis vooral op PHP gebied snap ik vrijwel niets van je tekst. Wat ik wel snap is dat wij elkaar verkeerd begrijpen.Verwijderd schreef op zondag 20 oktober 2013 @ 15:30:
Het punt is gewoon dat PHP een taak is welke over het algemeen wat trager is omdat deze meer geabstraheerd is. Ik ben geen PHP expert, maar PHP bied volgens mij geen toegang tot de fijnere memory features. Lock free datastructuren maken heeft geen enkele zin zonder toegang tot atomaire operaties.
Daarnaast als je je met PHP zorgen maakt over de vraag of je datastructuur wel of niet lock-free is... ik zou zeggen dat je dan de verkeerde taal hebt gepakt. Je gaat pas kijken naar lock-free als de performance mission critical is, want het kost gewoon heel veel moeite om goed werkend te krijgen.
Jouw zin vertelde concreet:
oftewel in mijn optiek:Code voor software waar de performance, in tegenstelling tot bij PHP, wel van belang is
Waar ik gewoon simpelweg aangaf dat er zat dingen zijn qua performance in PHP en dat dit bij vele applicaties een zeer grote rol speelt. Het enige verschil is inderdaad dat je dit puur code-technisch op "PHP niveau" moet oplossen.. iets waar ik het idee hebt dat jij dit deels op assembler niveau nog kan doen?performance in PHP is niet van belang
http://ie.microsoft.com/testdrive/Performance/LiteBrite/
dat Microsoft achtergrond muziekjes gebruikt.
mm bji nader inzien is het een demo pagina dus niet per se van microsoft zelf
[ Voor 32% gewijzigd door mrc4nl op 20-10-2013 15:49 ]
ora et labora
Verwijderd
Met C++11 kan je dingen als de memory order controleren, zodat je deze zwakker of sterker kan maken als je dat nodig hebt, daar is geen assembler meer voor nodig. Zo zijn er nog meer dingen die in C++ wel kunnen, maar in PHP zijn geabstraheerd.douweegbertje schreef op zondag 20 oktober 2013 @ 15:44:
iets waar ik het idee hebt dat jij dit deels op assembler niveau nog kan doen?
Mijn punt was meer dat als je je zorgen maakt om dingen als de memory order en lock free datastructuren, je dan met PHP de verkeerde taal hebt gekozen. PHP kent het concept memory order niet eens. Dat wil niet zeggen dat performance niet van belang is, maar dat wil wel zeggen dat als de performance zo belangrijk is dat je je zorgen maakt om de custom lock-free datastructuren waar we het over hadden, PHP de verkeerde keuze is.
iOS developer
Been there done that, punt is dat ik een freelist bijhoud en daar dus niets aan hebVerwijderd schreef op zondag 20 oktober 2013 @ 15:16:
met een circulair buffer.
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
In elk geval heb ik nu wel eens verkapt antwoord gekregen over mijn vraag wat je stukje code doet
Hoe je standaard code schrijft, is dat bepaalde elementen 'gelocked' worden om zo 'acties' er mee te doen. Jij bent bezig om dit specifieker te maken voor je programma waarbij (in het kort) je niet overal een lock er op krijgt, alleen bij het broodnodige?
Ik neem aan dat .oisyn al getest heeft of simpele oplossingen (zoals spinlocks e.d) snel genoeg waren, want je eigen lock free code gaan schrijven is best ingewikkeld.
edit:
In het simpelste geval 'lock' je de hele lijst, zodat er maar 1 thread is die de lijst kan aanpassen.
Tijdens het wachten op het verkrijgen van de lock worden threads meestal gesuspend door de scheduler.
Maar als de operaties erg kort zijn, dan zou dit een serieus performance probleem kunnen zijn.
Het suspenden en weer wakker maken van een thread (context switch) duurt relatief gezien lang.
Een tweede optie is om een spinlock te gebruiken, in het geval van locks met een korte levensduur is dit soms sneller dan een context switch. In dit geval komt de thread in een soort lege while lus terecht totdat het de lock kan krijgen.
Een andere optie is om een lock free implementatie te gebruiken, hierdoor heb je dus geen locks nodig om er voor te zorgen dat je implementatie thread safe is. De term 'lock free' heeft theoretisch nog een wat sterkere onderbouwing, maar je hebt nu in ieder geval een versimpelde (om daardoor mogelijk niet 100% correcte*) uitleg.
* het is natuurlijk wel de nitpicking corner hier. Ik heb wat short curts genomen in mijn uitleg
[ Voor 69% gewijzigd door HMS op 20-10-2013 17:29 ]
Verwijderd
Daar zijn ook wel oplossingen voor te bedenken, en dan heb je alleen bij een pop een CAS loop nodig. Het nadeel van het circular buffer is dat de grootte niet flexibel is. Geen issue voor mijn job queue, misschien wel in jouw environment..oisyn schreef op zondag 20 oktober 2013 @ 17:11:
[...]
Been there done that, punt is dat ik een freelist bijhoud en daar dus niets aan heb. Bovendien moeten meerdere threads tegelijk kunnen pushen en poppen.
Ik zou inderdaad een FIFO queue proberen, misschien is dat makkelijker dan LIFO...
het is .oisyn's code. Hij probeert een datastructuur (hij noemt het een single linked list, ik een stack) te maken waartegen meerdere threads tegelijk kunnen praten, zonder gebruik te maken van locks. Maar dat is.. best moeilijk.douweegbertje schreef op zondag 20 oktober 2013 @ 17:18:
Hoe je standaard code schrijft, is dat bepaalde elementen 'gelocked' worden om zo 'acties' er mee te doen. Jij bent bezig om dit specifieker te maken voor je programma waarbij (in het kort) je niet overal een lock er op krijgt, alleen bij het broodnodige?
Even ter indicatie, die enorme paper van Bjarne Stroustrup (bedenker van C++) over die lock free vector heeft nog steeds last van precies hetzelfde probleem als de implementatie van .oisyn.
[ Voor 7% gewijzigd door Verwijderd op 20-10-2013 17:56 ]
Writing lock-free code is difficult.
Writing correct lock-free code is extremely difficult.
Ik hoop dat binnenkort mag starten met mijn .NET cursus, mijn doel is om ook verder te gaan. PHP begint een beetje boring te worden, en qua mogelijkheden zou ik verdomd graag ".exe" willen gaan maken.
Rare opmerking, de een definieert de structuur, de ander het gedrag. Met een single linked list kun je zowel een queue als een stack implementeren (je kan wel maar aan 1 kant poppen, maar je kunt aan twee kanten pushen en zelfs inserten). Anderzijds kun je een stack ook met een andere structuur (zoals een array) implementeren.Verwijderd schreef op zondag 20 oktober 2013 @ 17:45:
(hij noemt het een single linked list, ik een stack)
Ik heb het over een linked list omdat dat lock free te implementeren is. Ik noem het geen stack omdat dat gedrag niet voor mij relevant is (kan net zo goed aan de andere kant pushen)
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
UPC is aan het bitchen als een malle.
Net 2x mijn internet verloren (en al mijn tunneltjes DANK) en vervolgens zit ik nu met:
Ping van 500-1000ms naar letterlijk ALLES en een snelheid van 0.25Mbps
yay fucking yay.
ff upc bellen -,-
oh en;
Lijkt met sterk dat ik het nu pas (8 uur) ga voelen?Door een storing kunt u op dit moment mogelijk geen gebruik maken van uw diensten van UPC. Er wordt hard gewerkt aan een oplossing.
Starttijd: 20 oktober 2013 - 17:17
Verwachte eindtijd: onbekend
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| Traceren van de route naar google.nl [173.194.67.94] via maximaal 30 hops: 1 <1 ms <1 ms <1 ms 192.168.0.1 2 1152 ms 955 ms 776 ms 10.15.87.1 3 961 ms 924 ms 960 ms 212.142.55.113 4 956 ms 973 ms 1188 ms 84.116.244.17 5 932 ms 833 ms 703 ms 84.116.138.86 6 515 ms 470 ms 461 ms nl-ams04a-ri2-xe-0-0-0.aorta.net [8 ] 7 624 ms 714 ms 754 ms 213.46.182.38 8 777 ms 875 ms 1041 ms 209.85.254.95 9 1271 ms 1201 ms 921 ms 209.85.253.247 10 1343 ms 1070 ms 937 ms 209.85.240.158 11 898 ms 857 ms 999 ms 209.85.250.167 12 * * * Time-out bij opdracht. 13 707 ms 617 ms 996 ms wi-in-f94.1e100.net [173.194.67.94] |
[ Voor 77% gewijzigd door Douweegbertje op 20-10-2013 19:57 ]
Toch lees ik op internet veel berichten waarin wordt gezegd dat er wel ondersteuning is...
EDIT: Misschien moet ik er maar een topic over maken. Waar zou ik dit het beste kunnen zetten, programming? Of non-windows operating systems? Ik neem aan gewoon programming...
[ Voor 20% gewijzigd door Robbiedobbie op 20-10-2013 20:21 ]
IE 11 blaast Chrome 30 omver, in de tijd dat Chrome 30 nog niet eens het IE-logo heeft getekend heeft IE 11 ze allemaal gedaanmrc4nl schreef op zondag 20 oktober 2013 @ 15:44:
OMG
http://ie.microsoft.com/testdrive/Performance/LiteBrite/
dat Microsoft achtergrond muziekjes gebruikt.(let op je volume dus)
mm bji nader inzien is het een demo pagina dus niet per se van microsoft zelf
We are shaping the future
Tja zal me anders niet verbazen dat alle tests daar lekker in het voordeel zijn voor IE. If != IE then prime-testAlex) schreef op zondag 20 oktober 2013 @ 21:31:
[...]
IE 11 blaast Chrome 30 omver, in de tijd dat Chrome 30 nog niet eens het IE-logo heeft getekend heeft IE 11 ze allemaal gedaan
Het enige waar IE 'redelijk' in is in vergelijking met andere browsers is HTML5. Dan nog zit daar weinig verschil in (wellicht 10-20% beter dan de rest). Als we gaan kijken naar de performance van andere elementen, dan is IE -altijd- de middelmaat al dan niet slechter.
Dus tja, ze maken even zo'n website omdat dat letterlijk het enige is waar IE dan iets beter in kan zijn.
Ben ik niet helemaal mee eens hoor. IE11 is gewoon super goed bezig met deze dingen. Chrome blies IE altijd omver maar dat is niet altijd meer zo. Dus om gewoon te zeggen dat alleen op dat IE11 de andere browsers om ver blaast is niet helemaal waar.douweegbertje schreef op zondag 20 oktober 2013 @ 21:39:
[...]
Tja zal me anders niet verbazen dat alle tests daar lekker in het voordeel zijn voor IE. If != IE then prime-test
Het enige waar IE 'redelijk' in is in vergelijking met andere browsers is HTML5. Dan nog zit daar weinig verschil in (wellicht 10-20% beter dan de rest). Als we gaan kijken naar de performance van andere elementen, dan is IE -altijd- de middelmaat al dan niet slechter.
Dus tja, ze maken even zo'n website omdat dat letterlijk het enige is waar IE dan iets beter in kan zijn.
Nothing to see here!
Dat is een andere test, maar mijn punt geldt nog steeds.During last week's Build 2013 conference in San Francisco, Microsoft showed off Windows 8.1 and its latest version of Internet Explorer. IE 11 looks to be the most feature rich and quickest version of Microsoft's browser but can it dethrone Chrome as the fastest browser? Microsoft seems to think so and has created its own browser benchmark dubbed Lawn Mark 2013.
The test is performed in browser, loading symbols for different browsers as patches of grass. Unsurprisingly, Internet Explorer 11 took top marks but is this test accurate? The folks over at the Chromium project were skeptical and decided to dissect the test to see what was really going on.
What they found was that Lawn Mark 2013 was improperly setting the smallest timeout value (setTimeout)improperly for the competition. While IE11 was allowed a "0" value for setTimeout, the competition was set to the standard 4 milliseconds.
After adjusting the test to give all browser the same smallest timeout value, Internet Explorer 11 actually came out about 30% slower than Chrome. Even Firefox managed to be quicker than IE 11. In reality, IE 11 is in 3rd place with Opera and Safari following. You can try out the modified test yourself here.
So what did we learn from these benchmarks? Either there's a "bug" in Lawn Mark 2013 or Microsoft deliberately created a benchmark where IE would alway win. Also, don't mess with the Chrome fanboys.
Benchmarks op het domein van MS zelf is gewoon onzin. Kom met onafhankelijke resultaten op allerlei vlakken en dan is het prima.
Overigens weet ik geen ruk van IE11 af, omdat ik het simpelweg niet gebruik. Mijn reactie is puur op die link, de MS benchmark.
Overigens zitten er wat 'easter eggs' in die url;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| switch (key) { case 13: // RETURN: Start Benchmark if (benchmarkButton.style.display !== "none") { startBenchmark(); } break; case 66: // B: SteveB Benchmark window.location.href = window.location.protocol + "//" + window.location.host + window.location.pathname + "?SteveB"; break; case 68: // D: Dean Benchmark window.location.href = window.location.protocol + "//" + window.location.host + window.location.pathname + "?Dean"; break; case 82: // R: Reset Demo window.location.reload(); break; } |
66 = B
68 = D
[ Voor 27% gewijzigd door Douweegbertje op 20-10-2013 21:52 ]
Verwijderd
Dan verschillen wij daarin van mening. Ik definieer een datastructuur aan de hand van de operaties die ik erop wil uitvoeren. Een std::stack<int, std::list> is volgens mij nog steeds een stack, en geen double linked list..oisyn schreef op zondag 20 oktober 2013 @ 18:46:
[...]
Rare opmerking, de een definieert de structuur, de ander het gedrag. Met een single linked list kun je zowel een queue als een stack implementeren (je kan wel maar aan 1 kant poppen, maar je kunt aan twee kanten pushen en zelfs inserten). Anderzijds kun je een stack ook met een andere structuur (zoals een array) implementeren.
Ik heb het over een linked list omdat dat lock free te implementeren is. Ik noem het geen stack omdat dat gedrag niet voor mij relevant is (kan net zo goed aan de andere kant pushen)
Ik ben het toch met .oisyn eens. Kijk voor de grap eens naar de Java datastructures, daar is het verschil duidelijk te zien in de definitie van de interfaces en classes. Je hebt bijvoorbeeld een list interface, en een linkedlist implementatie. Deze ligt op de achtergrond, en is hetgeen waar je data in opgeslagen wordt. Dit datatype zorgt voor de kenmerken.Verwijderd schreef op zondag 20 oktober 2013 @ 22:35:
[...]
Dan verschillen wij daarin van mening. Ik definieer een datastructuur aan de hand van de operaties die ik erop wil uitvoeren. Een std::stack<int, std::list> is volgens mij nog steeds een stack, en geen double linked list.
De definitie van een linked list is gewoon dat je met een soort van nodes werkt die naar de volgende/vorige wijzen. (Verschilt tussen single en double linked lists).
Also, @.oisyn ik ben erg benieuwd hoe je dit oplost. Ik heb toevallig afgelopen week ook een eigen allocator geschreven met een vergelijkbare manier van data bijhouden (struct die naar volgende wijst), alleen is de mijne (nog) niet thread-safe
Verwijderd
1
2
| std::vector< Foo > a, b; a = std::move( b ); |
Niet compileert als Foo geen operator= heeft. Hij moet gewoon de move constructor van std::vector aanroepen. Punt. Hij gebruikt de operator= niet eens, want die is naar aanleiding van deze compile error als volgt gedefinieerd:
1
2
3
4
| Foo& operator=( const Foo& ) { assert( false ); } |
Ik ben ik 2 dagen tegen 3 compiler bug aangelopen, gelukkig waren ze alle 3 al bekend bij microsoft..
Het is een demo wat HTML5 Audio laat zien... Hoe moet je dan geen (achtergrond) muziekjes gebruiken?mrc4nl schreef op zondag 20 oktober 2013 @ 15:44:
OMG
http://ie.microsoft.com/testdrive/Performance/LiteBrite/
dat Microsoft achtergrond muziekjes gebruikt.(let op je volume dus)
mm bji nader inzien is het een demo pagina dus niet per se van microsoft zelf
Heb je toevallig een linkje?douweegbertje schreef op zondag 20 oktober 2013 @ 21:47:
ok, speciaal voor u
[ Voor 16% gewijzigd door BtM909 op 20-10-2013 23:52 ]
Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.
Het feit dat de C++ standard library std::stack en std::queue compleet los ziet staan van de onderliggende container onderschrijft exact mijn punt. Dat iets een stack is sluit niet uit dat het een linked list is, dus de opmerking "jij noem het een linked list, ik noem het een stack" slaat nergens op. Het kan allebei tegelijk zijn.Verwijderd schreef op zondag 20 oktober 2013 @ 22:35:
[...]
Dan verschillen wij daarin van mening. Ik definieer een datastructuur aan de hand van de operaties die ik erop wil uitvoeren. Een std::stack<int, std::list> is volgens mij nog steeds een stack, en geen double linked list.
Échter, ik gebruik een single linked list om de nodes op te slaan, en daarnaast heb ik push en pop operaties. Ik definieer expliciet niet aan elke kant die operaties plaatsvinden. Het was in de huidige implementatie toevallig LIFO, maar nu ben ik van plan om te kijken of het met FIFO beter gaat. De interface verandert echter niet, en het is voor de buitenkant ook totaal niet van belang. Het is dus expliciet geen stack, want ik leg dat gedrag niet vast. Je kunt hooguit zeggen dat het een set is. Het is wel expliciet een linked list, want dat is nou eenmaal de datastructuur die ik wil gebruiken.
De quick'n'dirty manier is natuurlijk gewoon de head/tail pointer te gaan taggen door er een counter achter te zetten en dan een twee keer zo brede CAS te doen (x86 ondersteunt een 64-bits compareexchange, en x64 een 128-bits versie). Daarmee ontkom je aan het hele ABA probleem aangezien de pointer naar de head of tail Node die in tussentijd is geremoved en weer is geadd dan een andere tag heeft. Goed, tenzij dat 4 miljard keer is gebeurd natuurlijk, maar dat is highly unlikelyRobbiedobbie schreef op zondag 20 oktober 2013 @ 22:48:
Also, @.oisyn ik ben erg benieuwd hoe je dit oplost. Ik heb toevallig afgelopen week ook een eigen allocator geschreven met een vergelijkbare manier van data bijhouden (struct die naar volgende wijst), alleen is de mijne (nog) niet thread-safe
[ Voor 43% gewijzigd door .oisyn op 21-10-2013 00:32 ]
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Ik dacht dat het een demo was die liet zien hoe snel je die logo's tekendeBtM909 schreef op zondag 20 oktober 2013 @ 23:48:
[...]
Het is een demo wat HTML5 Audio laat zien... Hoe moet je dan geen (achtergrond) muziekjes gebruiken?
[...]
Heb je toevallig een linkje?
Nothing to see here!
Yakkes!.oisyn schreef op maandag 21 oktober 2013 @ 00:04:
[...]
De quick'n'dirty manier is natuurlijk gewoon de head/tail pointer te gaan taggen door er een counter achter te zetten en dan een twee keer zo brede CAS te doen (x86 ondersteunt een 64-bits compareexchange, en x64 een 128-bits versie). Daarmee ontkom je aan het hele ABA probleem aangezien de pointer naar de head of tail Node die in tussentijd is geremoved en weer is geadd dan een andere tag heeft. Goed, tenzij dat 4 miljard keer is gebeurd natuurlijk, maar dat is highly unlikely. Ik denk dat ik nu gewoon voor die oplossing ga aangezien ik niet langer opgehouden wil worden om het beoogde doel te bereiken: veel snellere new en delete operaties.
Opzich is dit wel een goede oplossing om het werkend te krijgen ja. Zelf zal ik in sommige gevallen niet onder locks uitkomen, maar voor de situaties waar ik die nodig zal hebben, is het ook een minder groot probleem. Ik heb namelijk een eigen memory allocator geschreven om ervan te leren. Deze allocator is heel basic kwa allocaties, maar heeft ook een debug modus erin zitten. Wanneer ik compile met een bepaalde flag, gaat hij niet alleen een freelist bij houden, maar ook een list met data over welke allocaties er geweest zijn en vanaf welke regel (new keyword overloaded icm een beetje macro magic
Het enige wat ik nog moet toevoegen is threadsafety, en een modus waar hij hugeass geheugen gaat gebruiken om allocaties op de edge van een page te leggen, zodat ik de page ernaast kan write locken met mprotect()
Koffie.
I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!
http://news.en.softonic.c...s-gives-ie-11-speed-crownBtM909 schreef op zondag 20 oktober 2013 @ 23:48:
[...]
Het is een demo wat HTML5 Audio laat zien... Hoe moet je dan geen (achtergrond) muziekjes gebruiken?
[...]
Heb je toevallig een linkje?
Verwijderd
Een muis gebruiken is zoooooo 2012.Robbiedobbie schreef op maandag 21 oktober 2013 @ 09:42:
Hmm, net eens visual studio 2013 in een vm geinstalleerd. Heb ik dat zwarte thema gekozen, ziet er wel mooi uitAlleen zie ik de cursor niet meer?
Niet wanneer je door code zit te bladeren die al bestaat, puur om een bepaalde flow te ontdekken. Wanneer ik zelf ben aan het programmeren, gebruik ik alleen toetsenbord
Ik kan beide niet zienpdebie schreef op maandag 21 oktober 2013 @ 09:49:
ik denk dat hij op de cursor doelt die aangeeft waar je aan het typen bent. Dit probleem heb ik ook wel eens gehad met een gedownload thema voor VS2012 namelijk.
I'm not a complete idiot. Some parts are missing.
.Gertjan.: Ik ben een zelfstandige alcoholist, dus ik bepaal zelf wel wanneer ik aan het bier ga!
EDIT: Blijkbaar had de solution een rescan nodig, 1 minuut nadat ik hem erin gezet had...
[ Voor 30% gewijzigd door Robbiedobbie op 21-10-2013 10:06 ]
Net de .Less extensies voor visual studio geinstalleerd, zodat ik ook .less files kan compileren.
- Opent een .less file: no prob dude hier is de file.
- Sluit een .less file zonder wijzigingen: wow wow rustig aan kerel! imma closing tha file, ga maar koffie halen. Ow je bent al weer terug? Ga nog maar n keer koffie halen..
FUUUUUUUUUUUUUUUUUuuuuuuuuuuuuu
Wat pokke herrie op je kop, extra sterke koffie en vooral tweakers sluiten
bij mij werkte hij wel prima. Laat VS echter zelf niets met LESS files doen; dan doet WinLESS.D-Raven schreef op maandag 21 oktober 2013 @ 10:00:
What the *bleep*.
Net de .Less extensies voor visual studio geinstalleerd, zodat ik ook .less files kan compileren.
- Opent een .less file: no prob dude hier is de file.
- Sluit een .less file zonder wijzigingen: wow wow rustig aan kerel! imma closing tha file, ga maar koffie halen. Ow je bent al weer terug? Ga nog maar n keer koffie halen..
FUUUUUUUUUUUUUUUUUuuuuuuuuuuuuu
Vreemd... ik heb de Web Essentials 2012 geinstalleerd staan. Geen idee of Winless daar bij zit. Lijkt me wel. Maar wellicht dat ik dan maar handmatig de less files ga compileren. Zo vaak verander ik die files toch niet.418O2 schreef op maandag 21 oktober 2013 @ 10:18:
[...]
bij mij werkte hij wel prima. Laat VS echter zelf niets met LESS files doen; dan doet WinLESS.
Met WE2012 gaat dat prima hoor418O2 schreef op maandag 21 oktober 2013 @ 10:18:
[...]
bij mij werkte hij wel prima. Laat VS echter zelf niets met LESS files doen; dan doet WinLESS.
WinLess is inderdaad wel een fijne back-up.
Compile on build ? Bij mij lijkt het erop dat hij recompileert zodra ik een less file save.Good Fella schreef op maandag 21 oktober 2013 @ 10:31:
[...]
Met WE2012 gaat dat prima hoorEigenlijk nooit problemen met compile on build. Niet na de update naar 1.4.2 anyways.
WinLess is inderdaad wel een fijne back-up.
Dat is gewoon een instelling onder Tools > Options > Web Essentials > LESS.D-Raven schreef op maandag 21 oktober 2013 @ 10:38:
[...]
Compile on build ? Bij mij lijkt het erop dat hij recompileert zodra ik een less file save.
Ik heb dat op True, Flase, False, False, True staan.
Dan compiled hij alleen .less bestanden die een gelijknamige .css hebben
[ Voor 18% gewijzigd door MoietyMe op 21-10-2013 10:44 ]
Aangepast, geen effect. Ga er ook geen tijd meer aan besteden, ik pleur het er weer af. Ik gebruik wel WinLess oid.Good Fella schreef op maandag 21 oktober 2013 @ 10:43:
[...]
Dat is gewoon een instelling onder Tools > Options > Web Essentials > LESS.
Ik heb dat op True, Flase, False, False, True staan.
Dan compiled hij alleen .less bestanden die een gelijknamige .css hebben
Ik schuif .less niet aan de kant. Ik schuif Web Essential performance destroyer 2012 aan de kant.Good Fella schreef op maandag 21 oktober 2013 @ 10:57:
Geen effect als in? Nogal zonde om dit zomaar aan de kant te schuiven.
Canon EOS60D | Canon 100mm f/2.8 USM | Canon 100-400mm f/4.5-5-6L | Canon 10-22mm f/3.5-4.5 USM | Canon 430EX II
Nee dat snapte ik welD-Raven schreef op maandag 21 oktober 2013 @ 10:58:
[...]
Ik schuif .less niet aan de kant. Ik schuif Web Essential performance destroyer 2012 aan de kant.
WinLESS in combinatie met TFS is natuurlijk ook niet handig. Moet je elke keer zelf je CSS gaan updaten of uitchecked.
Die compile on build werkt voor mij prima. Vraag me dan toch af wat er mis gaat, waar heb je precies last van?
Hoeveel heb je er?wjzijderveld schreef op maandag 21 oktober 2013 @ 10:59:
Ja, tijd voor nog een kopje koffie. Hoeveel moet ik er meenemen?
Sowieso hier mag je wel een kan komen brengen, anders ben je continu aan het lopenwjzijderveld schreef op maandag 21 oktober 2013 @ 10:59:
Ja, tijd voor nog een kopje koffie. Hoeveel moet ik er meenemen?
Canon EOS60D | Canon 100mm f/2.8 USM | Canon 100-400mm f/4.5-5-6L | Canon 10-22mm f/3.5-4.5 USM | Canon 430EX II
Waar ik last van heb is dat zodra ik een .less file aanpas en weer save. Mijn visual studio gewoon even vastloopt voor 10+ seconden. Ja ok, ik heb 40+ .less files in dit project, maar dat zou niet uit moeten maken. Want uiteindelijk compileer ik maar 1 .less file, de rest zijn imports.Good Fella schreef op maandag 21 oktober 2013 @ 11:00:
[...]
Nee dat snapte ik welMaar dan nog, elke keer bestanden gaan kopiëren omdat de instellingen van WE niet goed staan is ook zo jammer.
WinLESS in combinatie met TFS is natuurlijk ook niet handig. Moet je elke keer zelf je CSS gaan updaten of uitchecked.
Die compile on build werkt voor mij prima. Vraag me dan toch af wat er mis gaat, waar heb je precies last van?
Dus ik heb compile on save uitgezet. Maar dit haalde niks uit. Dus het compileren an sich was niet het probleem.
Nu heb ik de web essentials eruit gegooid, en zijn .less weer normale txt files met wat simpele markup. Waardoor Visual Studio niet allerlei achterlijke dingen gaat doen als ik dat bestand sluit en save.
En Winless werkt prima. Hoezo bestanden kopieren, ik kies gewoon de dir waar mn .less bestand in staat en druk op compile.
Oké heb je daarna wel even VS herstart. Wellicht dat dat nog wat helpt. Of misschien heb je een WE Solution Setting waar instaat dat hij on save less moet compilen.D-Raven schreef op maandag 21 oktober 2013 @ 11:07:
[...]
Waar ik last van heb is dat zodra ik een .less file aanpas en weer save. Mijn visual studio gewoon even vastloopt voor 10+ seconden. Ja ok, ik heb 40+ .less files in dit project, maar dat zou niet uit moeten maken. Want uiteindelijk compileer ik maar 1 .less file, de rest zijn imports.
Dus ik heb compile on save uitgezet. Maar dit haalde niks uit. Dus het compileren an sich was niet het probleem.
Denk dat het beter is om gewoon het probleem op te lossen in plaats van een mooi pakket de deur te wijzen.Nu heb ik de web essentials eruit gegooid, en zijn .less weer normale txt files met wat simpele markup. Waardoor Visual Studio niet allerlei achterlijke dingen gaat doen als ik dat bestand sluit en save.
Kom je dan niet in de knoei met TFS?En Winless werkt prima. Hoezo bestanden kopieren, ik kies gewoon de dir waar mn .less bestand in staat en druk op compile.
De WE Solution settings staan goed, en VS is natuurlijk al lang herstartGood Fella schreef op maandag 21 oktober 2013 @ 11:14:
[...]
Oké heb je daarna wel even VS herstart. Wellicht dat dat nog wat helpt. Of misschien heb je een WE Solution Setting waar instaat dat hij on save less moet compilen.
Een mooi pakket heeft sensible defaults. Ik heb momenteel gewoon geen tijd en zin om hier veel tijd aan te verspillen. Als ik ineens niet fatsoenlijk meer css files e.d. kan aanpassen zonder dat mn VS vastloopt dan gaat die tool er linea recta weer uit.[...]
Denk dat het beter is om gewoon het probleem op te lossen in plaats van een mooi pakket de deur te wijzen.
[...]
Kom je dan niet in de knoei met TFS?
En ik gebruik geen TFS dus dat scheelt.
Als je geen TFS gebruikt is het inderdaad een prima oplossing. Naast dat syntax highlighting wel fijn isD-Raven schreef op maandag 21 oktober 2013 @ 11:19:
[...]
De WE Solution settings staan goed, en VS is natuurlijk al lang herstart
[...]
Een mooi pakket heeft sensible defaults. Ik heb momenteel gewoon geen tijd en zin om hier veel tijd aan te verspillen. Als ik ineens niet fatsoenlijk meer css files e.d. kan aanpassen zonder dat mn VS vastloopt dan gaat die tool er linea recta weer uit.
En ik gebruik geen TFS dus dat scheelt.
[ Voor 4% gewijzigd door MoietyMe op 21-10-2013 11:28 ]
Dan komt het posten op tweakers toch helemaal niet op gang?Ealanrian schreef op maandag 21 oktober 2013 @ 10:15:
[...]
Wat pokke herrie op je kop, extra sterke koffie en vooral tweakers sluiten
Internet op de werkplek is hier aan het kloten. Tijd om wat af te sluiten, tot vanavond Devschuur
[ Voor 46% gewijzigd door Ealanrian op 21-10-2013 13:16 ]
tsssk, overratedEalanrian schreef op maandag 21 oktober 2013 @ 13:00:
Is dat de bedoeling dan? Werk is ook wel eens belangrijk.
Internet op de werkplek is hier aan het kloten. Tijd om wat af te sluiten, tot vanavond Devschuur
Xbox
Even the dark has a silver lining | I'm all you can imagine times infinity, times three
Is meestal niet een al te goed teken. Als je nog geen uitgebreide backup had dan zou ik dat maar asap gaan regelenTheNephilim schreef op maandag 21 oktober 2013 @ 13:26:
Wow hey, was ineens een harde schijf kwijt op m'n PCEven stroom eraf en opnieuw opstarten was gelukkig genoeg
Dit topic is gesloten.
![]()
Dit topic is niet de plaats om te lopen helpdesken. De Coffee Corner is primair bedoeld als uitlaatklep voor iedereen in de Devschuur® en niet als vraagbaak.