Domanda

Ho appena imparato che Node.js Crown Jewel libuv use Il sistema di blocco richiede le operazioni di file .Il comportamento asincrono è implementato con i thread!Ciò solleva due domande (I solo Assistenza su UNIX):

    .
  1. Perché non utilizza le chiamate di filesystem non bloccanti come fa per il networking?
  2. Se ci sono un milione di retti di file eccezionali, probabilmente non lancia un milione di discussioni ... cosa fa libuv ??
È stato utile?

Soluzione 2

    .
  1. The STUSS API non bloccante non può essere utilizzato, poiché O_nonblock e gli amici non funzionano su file regolari!Per Linux AIO è disponibile, ma ha le sue stranezze (cioè dipende dal filesystem, gira il blocco in silenzio per alcune operazioni).

  2. Non ho idea.

Altri suggerimenti

    .
  1. La maggior probabilità di supportare operazioni sincroni come fs.renameSync() vs fs.rename() .

  2. Utilizza un pool di thread, come spiegato nella "NOTA " sul link che ti ha detto.

    .

    [...] Ma invocare queste funzioni in un pool di filettatura e notifica agli osservatori registrati con il loop evento quando è richiesta l'interazione dell'applicazione.

    Quindi, crea un numero limitato di fili e li riutilizza mentre diventano disponibili.

  3. Inoltre, per quanto riguarda la quip di " crown jewel :" node.js e libuv non sono magie.Sono buoni strumenti per avere a tua disposizione, ma certamente hanno i loro limiti.

    Però, l'iperbole di " un milione di file legge " sarebbe un tratto per qualsiasi piattaforma da gestire senza vincoli.

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