Domanda

Devo scrivere software che farà molta matematica. Principalmente sarà la moltiplicazione della matrice con i numeri interi per calcolare DCT. Quanto più veloce dovrei aspettarmi che il codice sia eseguito in C nativo rispetto a VB .NET? Fattore 2, fattore 10, fattore di 1000 ...? Qualcuno ha provato e raccolto statistiche su questo?

È stato utile?

Soluzione

È possibile aggiungere un nuovo attributo immagine slideshow_image al set di attributi prodotti. Questo post su Pixafy spiega come.Ciò ti consentirebbe di recuperare tutte le immagini per la raccolta del prodotto Dialhow per cercare le immagini nell'attributo slideshow_image .

Altri suggerimenti

Il codice .NET è compilato al codice nativo prima dell'esecuzione, quindi non dovrebbe essere più lento del codice nativo in generale. Mi aspetto un fattore <10.

Inoltre, le tecniche di ottimizzazione adattiva profilano il codice mentre funziona, guadagnando più informazioni rispetto a un tipico compilatore statico. Quindi, il JIT può prendere decisioni più informate per ulteriori ottimizzazioni

VB è del 93,7% veloce come C. Se scegli lo scenario giusto.

In realtà, se la tua "C" include chiamate regolari a Malloc () e Free (), qualsiasi tipo di linguaggio raccolto da galghi come VB.NET sta per eseguire letteralmente cerchi attorno a esso. GC può essere 10 volte più veloce di Mallocs nei tuoi loop interni.

Se si rompe e usi C, prova a riutilizzare le strutture che hai dichiarato solo una volta invece di crearne di nuove, per evitare questo problema. Questo può essere di beneficio anche in VB se la tua soluzione si presta ad essa. Tuttavia sarà più difficile programmare e GC è molto veloce.

Per quanto riguarda i limiti/controlli di overflow, se la velocità è importante e i test hanno rivelato che non si verificano e non stai rischiando la vita o milioni da un errore o da un errore, sono una perdita di tempo. Ma se non riesci a sbarazzarti di loro, il tuo tempo è probabilmente ancora più prezioso in una lingua con cui puoi programmare più rapidamente.

Se ti aspetti gravi dimensioni e utilizzo, paga di dividere l'attività con un programma di controllo e archiviare le "definizioni di attività" allocate in una directory condivisa con un file per risolutore di attività o un database. Quindi è possibile eseguire un risolutore per processore (2 per CPU HT) o computer di rete. Sii stanco delle strutture in coda: è difficile atomicamente 'mark-bek-and-get-data-if-non-beak'. Sai quanti risolutori di attività inizierai. L'ho fatto con un'utilità di imaging che sviluppio, era molto più facile del previsto e cremava la versione precedente. Inoltre, se usi più processi Con un dominio problematico correttamente dividibile, si evita l'onere di programmazione leggero a significativo del multithreading. O convincere i tuoi colleghi che le tue parentesi graffe sono nel posto giusto. Pace.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top