Domanda

Sono in esecuzione di un compito enorme [traduzione automatica di script con il database + perl, ecc] a correre per circa 2 settimane non-stop. Mentre il pensiero come accelerare in su ho visto che il traduttore uscite tutto (tutte le frasi tradotte, tutte le informazioni sulla strada) per STDOUT tutto il tempo. Questo rende il lavoro visibilmente più lento quando ricevo l'uscita sulla console.

Io, ovviamente, convogliato l'uscita a /dev/null, ma poi ho pensato "ci potrebbe essere qualcosa di ancora più veloce?" E 'molto più uscita che sarebbe davvero fare la differenza.

E questa è la domanda che mi sto chiedendo, perché per quanto ne so non c'è nulla di più veloce ... (Ma io sono ben lungi dall'essere un guru avere Linux utilizzati su base quotidiana soli ultimi 3 anni)

È stato utile?

Soluzione

Output a / dev / null è implementato nel kernel, che è abbastanza sanguinosa veloce. Il tubo di uscita non è il tuo problema adesso, è il tempo necessario per costruire le stringhe che sono sempre inviati a / dev / null. Suggerirei si passa attraverso il programma e commentate (o guardia con if $be_verbose) tutte le linee che sono dichiarazioni di stampa inutili. Sono abbastanza sicuro che ti si invia un aumento di velocità notevole.

Altri suggerimenti

sono in grado (via dd) per scaricare 20 gigabyte di dati al secondo down / dev / null. Questo non è il collo di bottiglia :-p

Praticamente l'unico modo per renderlo più veloce è quello di non generare i dati, in primo luogo - rimuovere le dichiarazioni di registrazione del tutto. Il costo di produzione di tutti i messaggi di log probabilmente supera il costo di gettarli via un bel po '.

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