Sto usando node.js per servire alcune immagini PNG che sono archiviate in un database SQLite come BLOB binari. Queste immagini sono piccole, in media 9500 byte.Cosa rende "lento" il file node.js SlowBuffers?
Sto usando the sqlite3 npm package, che sembra restituire oggetti BLOB binari come SlowBuffers
. Il mio servizio node.js tiene questi SlowBuffers
in memoria di mitigare la latenza IO, servendoli in questo modo:
response.send(slowBuffer);
Sembra che SlowBuffer
ha un'interfaccia simile a Buffer
; la conversione in Buffer
è banale:
var f = function(slowBuffer) {
var buffer = new Buffer(slowBuffer.length);
slowBuffer.copy(buffer);
return buffer;
}
Devo convertire questi SlowBuffers
-Buffers
?
Aiutami a capire perché vengono chiamati buffer "lenti".
Se i dati in un 'Buffer' usano solo' SlowBuffer' comunque, perché la differenza? È che ci sono 'SlowBuffer's pre-assegnati? – Brad
Entrambi sono allocazioni di memoria, ma Buffer utilizza le funzioni JS native per manipolare la memoria, mentre SlowBuffer utilizza l'API C++ esterna. C'è un sovraccarico quando chiami API C++ da node.js. – user568109
'Buffer' usa solo' SlowBuffer' quando la memoria necessaria è superiore a 8K? Ciò è in conflitto con "ogni buffer è infatti supportato da SlowBuffer", che è il punto in cui sono confuso. – Brad