Volledige versie bekijken : [C++] gratis IDE en vraagje efficiëntie



Iced Dragon
4 December 2010, 12:10
Hallo,

ik gebruik momenteel Delphi 7 om wetenschappelijk onderzoek uit te voeren (simulaties van gedrag).

Voor een hogere efficiëntie zou ik overstappen naar een andere taal, m.n. C++. Nu vroeg ik mij af welke (gratis) IDE's jullie hiervoor kunnen aanraden?

Aangezien het over enorm lange berekeningen gaat speelt snelheid een grote rol. Raden jullie eventueel andere talen aan?


Bedankt

Butterflyice
4 December 2010, 18:50
Je kan het ook met php mysql java maken.
Ik ken de grote van je database niet maar zo te zien moet dat geen enkel probleem zijn.
Voor c++ kan je netbeans gebruiken deze is ook geschikt voor java en php

ultddave
4 December 2010, 19:22
Ik gebruik Qt voor te programmeren in C++, Qt bevat zowel een IDE als framework die je kan helpen. In Netbeans (zoals hierboven aangehaald) gaat het ook, maar heb het zelf nooit getest. Ik gebruik Netbeans voornamelijk voor Java.

Ook heb je Microsoft Visual Studios, maar die is niet gratis. ;)

Met C++ of ANSI C kan je normaal gezien wel goede performantie halen. Ook java zal wel gaan normaal gezien. ;)

@Bufferflyice; PHP ondersteunt wel geen multithreading, wat meestal wel handig kan zijn bij complexe berekeningen. ;)

Mvg,
Dave

ultddave
5 December 2010, 15:59
En best geen database gebruiken. ;)
Databases en snelheid zijn 2 zaken die totaal niet bij elkaar passen hoor. Dit zou nog eventueel kunnen:
=> Alles vanuit de DB in het geheugen laden
=> Complexe bewerkingen uitvoeren in het geheugen
=> Terug in DB stoppen

Zeker niet met DB queries werken, want dan ga je bedrogen uitkomen qua performance. Zeker bij grote hoeveelheden data.

En aangezien een DB in principe ook met files werkt, kan je evengoed zelf een binaire file maken met je records, en die inlezen. Dan heb je niet de overhead die je bij een DB hebt.

=> Binaire file inlezen
=> Complexe bewerkingen uitvoeren in het geheugen
=> Terug uitschrijven naar file

Extra snelheidswinst kan je halen door algoritmes te gebruiken met een goede tijdscomplexiteit (maar dat is uiteraard logisch).

Bij sorteren is dat vooral Parallel Sorting; dat zijn sorteeralgoritmes die je toelaten om een lijst van data op te splitsen en "tegelijkertijd" (multi-processor of multithreading (in het geval van hyperthreading)) te sorteren. Dus bijvoorbeeld, je deelt je lijst van data op in 4. En laat elke processor (quadcore) een deel sorteren.

"Tegelijkertijd" is uiteraard nooit 100% correct. Maar je zal wel begrijpen wat ik bedoel. ;)

Als je populaties moet monitoren zou je bijvoorbeeld 3 threads kunnen gebruiken. 1 voor de geboortes, 1 voor de sterftes en 1 die de parameters regelt (bijvoorbeeld, ziektes introduceert, seizoenen, ...).

(Die van geboortes en sterftes kan je eventueel in 1 thread stoppen)

Hangt uiteraard allemaal af van het doel van het programma. ;)

Mvg,
Dave