2011-01-13 21 views
10

Sto cercando il codice in C# che può uccidere le prestazioni del computer (prestazioni della CPU, forse anche le prestazioni della cpu-memory link) per quanto possibile (verrà eseguito su 4 core box quindi ho intenzione di creare 4 thread ed eseguirlo contemporaneamente).Parte del codice che può uccidere le prestazioni del computer

Se funziona su tipo di dati int/double/numerico/dovrebbe avere alcune strutture di dati pazzeschi (ma non dovrebbe occupare troppa memoria).

Avete qualche suggerimento?

+15

'while (true) {}'? –

+0

@Klaus non consuma molta memoria :) – marcog

+0

@Klaus - probabilmente occuperebbe anche un solo processore. – Oded

risposta

14

Calcolare PI utilizzando tutti i processori.

+6

Ha funzionato su Star Trek, può funzionare per voi. – RQDQ

+0

@RQDQ - Devo aver perso quell'episodio. – Oded

+1

Probabilmente questo: http://www.youtube.com/watch?v=H20cKjz-bjw –

1

Soluzione forza bruta di N Queens (vedi wikipedia) per esempio 64 regine.

Perché un ciclo semplice come questo può essere ottimizzata di distanza (a volte solo dopo pochi minuti già in esecuzione):

while(true) { 
    i++; 
} 
+0

Dichiara 'i' come volatile per impedire l'ottimizzazione – finnw

+0

@finnw: Anche se io sono un campo globale e io sono volatile, è ancora possibile che l'ultima JVM (o una futura JVM) rilevi che questo pezzo di codice viene eseguito una volta sola e quindi posso essere reso una variabile locale e quindi la natura volatile diventa irrilevante. –

+0

questa è una domanda .NET, ma penso che tu abbia torto anche su Java, perché la VM non può sapere che un'altra classe non verrà caricata in seguito che leggerà 'i' per riflessione. – finnw

0
int *x; 
while(1) 
{ 
    x = new int[10]; 
} 
+8

Non sembra molto simile a C# –

+5

I compilatori probabilmente ottimizzeranno anche questo. – marcog

2

calcolare una lunga sequenza di numeri primi. Il seguente link contiene un codice che può essere modificato per fare questo ..

Program to find prime numbers

1

È inoltre possibile risolvere un messaggio crittografato molto lungo, crittografato da una chiave come 2048 bit. Questo è un killer.

4

Se si desidera annullare le prestazioni di una macchina, provare a colpire il disco, poiché gli interrupt IO tendono a influire su tutto anche su un buon programmatore della CPU. Qualcosa come elencare una directory di molti piccoli file o scrivere un sacco di grandi file su disco farebbe il trucco.

+0

Ottima idea che enumera come elencare la directory di Windows, altri suggerimenti con l'HDD? – Darqer

+0

Qui puoi combinare qualsiasi altro suggerimento e scrivere l'output in un file. Assicurati di svuotare i buffer tra ogni scrittura in modo che vada effettivamente sul disco anziché rimanere semplicemente in memoria. –

+0

Ci sono alcune applicazioni che possono uccidere le prestazioni del sistema da parte dei dischi IO lo esegui semplicemente e tutto si ferma, ma penso che la scrittura di lettura semplice potrebbe avere priorità troppo bassa – Darqer

4

Avere un programma che scrive copie del suo eseguibile sull'unità più volte per ogni thread. Ognuna di queste copie del programma viene attivata dal programma. :)

+0

hehe, come fermarlo? :) – Darqer

+1

Questa è una domanda completamente diversa. : P – GWLlosa

+2

Si interrompe quando il computer esegue :) – Poindexter

1

Un open-source, multi-threaded programma di modellazione 3D rendering di una scena illuminata estremamente complesso sarà battere il sistema più forte alla sottomissione.

2

Chiamare Bitmap.GetPixel, in un ciclo, in un'applicazione di elaborazione delle immagini.

2

direi: un naieve (forza bruta) che viaggiano implementazione commesso:

(from wikipedia):

Il problema del commesso viaggiatore (TSP) è un problema NP-hard in ottimizzazione combinatoria studiato in operazioni ricerca e informatica teorica. Dato un elenco di città e le loro distanze a coppie, il compito è quello di trovare un tour più breve che visita ciascuna città esattamente una volta.

3

Perché reinventare la ruota? Utilizzare lo Load Testing software esistente.

+0

No, deve essere una soluzione personalizzata. – Darqer

+3

@ Darqer- "Deve essere personalizzato?" Perché mettere quel tipo di vincolo sulla risoluzione del problema? Pensavo volessi sprecare il tempo del computer, non il tuo. – AShelly

+0

Devo essere in grado di controllarlo (accenderlo/spegnerlo) tramite una semplice chiamata tcp/ip :). Bene e secondo potrebbe essere interessante implementarlo da solo :) tipo di programmazione divertente :) – Darqer

1

Okay, come su alcuni ricorsione infinita nello spirito di StackOverflow?

void deathToAllRobots(int someMeaninglessValue) { 
    deathToAllRobots(someMeaninglessValue+1); 
} 
Problemi correlati