Ik zat me zo eens af te vragen. Wat maakt een applicatie nou snel?
Ik heb sinds een tijdje Opera ontdekt, als in serieus naar gekeken (kende het al een tijdje). Het viel me op dat dit een snelle browser is wel een snelle manier van werken. De GUI reageert ook erg snel. En toen bedacht ik me dat ik daar nog meer applicaties van had.
Om maar even een paar te noemen:
• Eset NOD32 (virusscanner): Deze virusscanner is rete snel in vergelijking met bijvoorbeeld AVG. Ook is de GUI heel snel op te roepen en te gebruiken. En het neemt weinig resources in.
• uTorrent: Deze bittorrent is ook rete snel. Hij is snel geopend en je kunt er snel door heen klikken. Ook deze gebruikt weinig resources.
• Opera: Een rete snelle browser. Hij is sneller dan Firefox en internet explorer. Hiermee bedoel ik dan niet het renderen of het downloaden van de pagina, omdat het me daar niet om gaat op het moment. Hiermee bedoel ik dat je er snel mee kunt navigeren, snel doorheen kunt klikken en ook weer weinig resources gebruikt.
Deze applicaties hebben gemeen dat ze vrij snel zijn en weinig resources gebruiken. Uiteraard zijn die 2 een grote reden van elkaar. Als ik een "gewone" applicatie erbij pak, dan heb ik toch altijd het gevoel, voor wat ze moeten kunnen, zijn ze trager dan die programma's hier boven die meer moeten doen op dat moment.
Tegenwoordig met .NET, JAVA en de vele GUI libraries voor welke taal dan ook (GTK, wxWidgets, QT, etc), is het heel makkelijk om zo'n GUI in elkaar te zetten. Stel ik zet zo'n standaard applicatie in elkaar met bijvoorbeeld .NET en het laat alleen nog maar een schermpje zien + een knopje, dan voelt het al een stuk trager aan dan boven genoemde applicaties.
Mijn vraag is dan, op welke manier moet je programmeren om je applicaties ook zo snel te krijgen? Maken ze handig gebruik van threads? Is die GUI library zo goed geoptimaliseerd en zijn de andere GUI libraries zo bloated? Is de meeste software gewoon zo resource vretend geschreven? Maken ze misschien gebruik van een soort van caching? Zijn ze misschien in assembler geschreven, om zo weinig mogelijk resources te gebruiken?
Het zou ook kunnen zijn dat het design van je software je forceerd om meer code te schrijven om iets te regelen, wat het dan ook trager maakt. Events met polling is trager dan de code rechtstreeks onder een actie te hangen, ook al scheelt het normalitair niet veel. Is het dan zo dat deze applicaties "slecht onderhoudbaar" zijn ontworpen, om toch zo snel te kunnen zijn?
Ik heb sinds een tijdje Opera ontdekt, als in serieus naar gekeken (kende het al een tijdje). Het viel me op dat dit een snelle browser is wel een snelle manier van werken. De GUI reageert ook erg snel. En toen bedacht ik me dat ik daar nog meer applicaties van had.
Om maar even een paar te noemen:
• Eset NOD32 (virusscanner): Deze virusscanner is rete snel in vergelijking met bijvoorbeeld AVG. Ook is de GUI heel snel op te roepen en te gebruiken. En het neemt weinig resources in.
• uTorrent: Deze bittorrent is ook rete snel. Hij is snel geopend en je kunt er snel door heen klikken. Ook deze gebruikt weinig resources.
• Opera: Een rete snelle browser. Hij is sneller dan Firefox en internet explorer. Hiermee bedoel ik dan niet het renderen of het downloaden van de pagina, omdat het me daar niet om gaat op het moment. Hiermee bedoel ik dat je er snel mee kunt navigeren, snel doorheen kunt klikken en ook weer weinig resources gebruikt.
Deze applicaties hebben gemeen dat ze vrij snel zijn en weinig resources gebruiken. Uiteraard zijn die 2 een grote reden van elkaar. Als ik een "gewone" applicatie erbij pak, dan heb ik toch altijd het gevoel, voor wat ze moeten kunnen, zijn ze trager dan die programma's hier boven die meer moeten doen op dat moment.
Tegenwoordig met .NET, JAVA en de vele GUI libraries voor welke taal dan ook (GTK, wxWidgets, QT, etc), is het heel makkelijk om zo'n GUI in elkaar te zetten. Stel ik zet zo'n standaard applicatie in elkaar met bijvoorbeeld .NET en het laat alleen nog maar een schermpje zien + een knopje, dan voelt het al een stuk trager aan dan boven genoemde applicaties.
Mijn vraag is dan, op welke manier moet je programmeren om je applicaties ook zo snel te krijgen? Maken ze handig gebruik van threads? Is die GUI library zo goed geoptimaliseerd en zijn de andere GUI libraries zo bloated? Is de meeste software gewoon zo resource vretend geschreven? Maken ze misschien gebruik van een soort van caching? Zijn ze misschien in assembler geschreven, om zo weinig mogelijk resources te gebruiken?
Het zou ook kunnen zijn dat het design van je software je forceerd om meer code te schrijven om iets te regelen, wat het dan ook trager maakt. Events met polling is trager dan de code rechtstreeks onder een actie te hangen, ook al scheelt het normalitair niet veel. Is het dan zo dat deze applicaties "slecht onderhoudbaar" zijn ontworpen, om toch zo snel te kunnen zijn?