Articles of ottimizzazione

Come posso massimizzare le prestazioni delle operazioni basate su elementi su un grande array in C #

L’operazione consiste nel moltiplicare ogni elemento i-esimo di un array (chiamiamolo A) e l’elemento i-esimo di una matrice della stessa dimensione (B), e aggiornare lo stesso i-esimo elemento di A con il valore guadagnato. In una formula aritmetica, A ‘[i] = A [i] * B [i] (0 <i <n (A)) Qual è il modo migliore […]

Cosa significa quando un’operazione “si avvicina a O (1)” anziché “è O (1)”?

Si consideri ad esempio la documentazione per il Dictionary .NET Framework 4.5 Dictionary : Nelle osservazioni per il metodo .ContainsKey , lo dichiarano Questo metodo si avvicina ad un’operazione O (1). E nei commenti per la proprietà .Count , lo affermano Il recupero del valore di questa proprietà è un’operazione O (1). Si noti che […]

Come superare questa sostituzione regex?

Dopo una misurazione considerevole, ho identificato un hotspot in uno dei nostri servizi Windows che mi piacerebbe ottimizzare. Stiamo elaborando stringhe che possono contenere più spazi consecutivi e vorremmo ridurre solo a singoli spazi. Usiamo una regex compilata statica per questo compito: private static readonly Regex regex_select_all_multiple_whitespace_chars = new Regex(@”\s+”,RegexOptions.Compiled); e quindi usarlo come segue: […]

Funzione ABS intera veloce

int X = ab; int d = Math.Abs(X); Sono abbastanza sicuro che .NET non faccia inline. Quindi, lo farò se (), o c’è qualche altro trucco meno conosciuto?

Utilizzo di jpegtran, jpegoptim o altra ottimizzazione / compressione jpeg in C #

Ho 100 (forse 1000) di prodotti con 10-30 immagini di ciascun prodotto che vengono in un negozio online che ho messo insieme. Ho bisogno di ottimizzare le dimensioni dei file delle immagini il più ansible senza perdere la qualità delle immagini. Non ho usato direttamente jpegtran, jpegoptim, o qualsiasi altro jpeg optimizer ma ho notato […]

Come implementare al meglio K-neighbor neighbor in C # per un numero elevato di dimensioni?

Sto implementando l’algoritmo di classificazione dei vicini più vicini a K in C # per un set di training e testing di circa 20.000 campioni ciascuno e 25 dimensioni. Ci sono solo due classi, rappresentate da ‘0’ e ‘1’ nella mia implementazione. Per ora, ho la seguente semplice implementazione: // testSamples and trainSamples consists of […]

In C #, convertire ulong in byte più velocemente?

Ho un modo per convertire le ulongs in byte usando i cambi binari in una dichiarazione for, ma non è molto efficiente nel tempo. C’è un modo per lanciare una serie di dimensioni 64 direttamente in una matrice di byte della dimensione 512? Questa è una sezione di codice che viene eseguita migliaia di volte […]

Disegna in modo efficiente una griglia in Windows Form

Sto scrivendo un’implementazione di Conway’s Game of Life in C #. Questo è il codice che sto usando per disegnare la griglia, è nel mio evento panel_Paint. g è il contesto grafico. for (int y = 0; y < numOfCells * cellSize; y += cellSize) { for (int x = 0; x < numOfCells * […]

È ansible utilizzare l’hint di previsione dei rami in C #?

Ad esempio, so che è definito per gcc e utilizzato nel kernel di Linux come: #define likely(x) __builtin_expect((x),1) #define unlikely(x) __builtin_expect((x),0) Se nulla di simile è ansible in C #, è la migliore alternativa per riordinare manualmente le if-statement, mettendo prima il caso più probabile? Esistono altri modi per ottimizzare in base a questo tipo […]

Distriggers l’ottimizzazione del compilatore per una funzione specifica o un blocco di codice (C #)

Il compilatore fa un ottimo lavoro di ottimizzazione per le build RELEASE, ma a volte può essere utile per garantire che l’ottimizzazione sia distriggersta per una funzione locale (ma non per l’intero progetto deselezionando Project Options > Optimize code ). In C ++ questo si ottiene usando il seguente (con il #pragma normalmente commentato): #pragma […]