Javascript étant un langage dynamique, pourquoi est-il obligatoire de mentionner la taille du tampon lors de sa création?Pourquoi est-il nécessaire d'allouer de la mémoire pour le tampon lors de sa création?
var buffer = new Buffer(10);
Javascript étant un langage dynamique, pourquoi est-il obligatoire de mentionner la taille du tampon lors de sa création?Pourquoi est-il nécessaire d'allouer de la mémoire pour le tampon lors de sa création?
var buffer = new Buffer(10);
Je pense qu'il est probable que Buffer
instances utilisent typed arrays dans les coulisses de l'efficacité, ou même des réseaux à faible niveau (comme Buffer
est une partie native du noeud, qui est écrit en C++, pas JavaScript). En effet, en regardant node_buffer.cc
, cela semble être le cas. Les tableaux typés ou les tableaux de bas niveau sont des structures de taille fixe, allouées à la création.
Note latérale: new Buffer(size)
est déprécié; utilisez Buffer.alloc
à la place.
De la documentation Node.js:
Les instances de la classe tampon sont semblables à des tableaux d'entiers, mais correspondent à taille fixe,-allocations de mémoire premières en dehors du tas de V8. La taille de la mémoire tampon est établie lors de sa création et ne peut pas être redimensionnée .
Comme les tableaux eux-mêmes ont besoin que leur taille soit spécifiée à l'initialisation, de même pour Buffer.
cochez https://nodejs.org/api/buffer.html le premier exemple + commentaires – Edwin