多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

中國最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2

nodejs教程

Node.js Smalloc

閱讀 (2401)

Smalloc

穩定性: 1 - 試驗

類: smalloc

由簡單內存分配器(處理擴展原始內存的分配)支持的緩存。Smalloc 有以下函數:

smalloc.alloc(length[, receiver][, type])

  • length {Number} <= smalloc.kMaxLength
  • receiver {Object} 默認: new Object
  • type {Enum} 默認: Uint8

返回 receiver 對象,包含分配的外部數組數據。如果沒有傳入receiver ,將會創建并返回一個新的對象。

這可用于創建你自己的類似 buffer 的類。不會設置其他屬性,因此使用者需要跟蹤其他所需信息(比如分配的長度)。

function SimpleData(n) {
  this.length = n;
  smalloc.alloc(this.length, this);
}

SimpleData.prototype = { /* ... */ };

僅檢查 receiver 是否是非數組的對象。因此,可以分配擴展數據數據,不僅是普通對象。

function allocMe() { }
smalloc.alloc(3, allocMe);

// { [Function allocMe] '0': 0, '1': 0, '2': 0 }

v8 不支持給數組分配擴展數組對象,如果這么做,將會拋出。

你可以指定外部數組數據的類型。所有可用類型在 smalloc.Types 列出,例如:

var doubleArr = smalloc.alloc(3, smalloc.Types.Double);

for (var i = 0; i < 3; i++)
  doubleArr = i / 10;

// { '0': 0, '1': 0.1, '2': 0.2 }

使用 Object.freeze, Object.sealObject.preventExtensions不能凍結,封鎖,阻止對象的使用擴展數據擴展。

smalloc.copyOnto(source, sourceStart, dest, destStart, copyLength);

  • source {Object} 分配了外部數組的對象
  • sourceStart {Number} 負責的起始位置
  • dest {Object} 分配了外部數組的對象
  • destStart {Number} 拷貝到目標的起始位置
  • copyLength {Number} 需要拷貝的長度

從一個外部數組拷貝內存到另外一個,所有的參數都必填,否則會拋出異常。

var a = smalloc.alloc(4);
var b = smalloc.alloc(4);

for (var i = 0; i < 4; i++) {
  a[i] = i;
  b[i] = i * 2;
}

// { '0': 0, '1': 1, '2': 2, '3': 3 }
// { '0': 0, '1': 2, '2': 4, '3': 6 }

smalloc.copyOnto(b, 2, a, 0, 2);

// { '0': 4, '1': 6, '2': 2, '3': 3 }

copyOnto 會在內部自動檢測分配的長度,因此不必設置任何附加參數。

smalloc.dispose(obj)

  • obj Object

釋放通過 smalloc.alloc 給對象分配的內存。

var a = {};
smalloc.alloc(3, a);

// { '0': 0, '1': 0, '2': 0 }

smalloc.dispose(a);

// {}

有利于減輕垃圾回收器的負擔,但是開發時候還是要小心。程序里可能會出現難以跟蹤的錯誤。

var a = smalloc.alloc(4);
var b = smalloc.alloc(4);

// perform this somewhere along the line
smalloc.dispose(b);

// now trying to copy some data out
smalloc.copyOnto(b, 2, a, 0, 2);

// now results in:
// RangeError: copy_length > source_length

調用 dispose() ,對象依舊擁有外部數據,例如 smalloc.hasExternalData() 會返回 true。dispose()不支持緩存,如果傳入將會拋出。

smalloc.hasExternalData(obj)

  • obj {Object}

如果 obj擁有外部分配的內存,返回true。

smalloc.kMaxLength

可分配的最大數量。同樣適用于緩存創建。

smalloc.Types

外部數組的類型,包含:

  • Int8
  • Uint8
  • Int16
  • Uint16
  • Int32
  • Uint32
  • Float
  • Double
  • Uint8Clamped
關閉
程序員人生
主站蜘蛛池模板: 中文字幕一区二区三区久久网站 | 亚洲精品乱无伦码 | 国产在线一区二区视频 | 久草成人 | 久久久久久久国产精品 | 一本免费视频 | 亚洲一区二区三区高清 不卡 | 日韩特级片 | 国内精品综合九九久久精品 | 一本免费视频 | 欧美啪啪做 | 亚洲视频免费看 | 福利影院第一页 | 欧美精品综合一区二区三区 | 欧洲自拍偷拍 | www.国产一区二区三区 | 日本天堂在线视频 | 日韩福利在线 | 黄色毛片视频网站 | 成人免费视频视频在线不卡 | 91成人午夜精品福利院在线观看 | 另类老妇性bbwbbw | 国产日韩一区二区 | 国产亚洲人成网站在线观看不卡 | 亚洲国产成人资源在线软件 | 国产成人久久久精品毛片 | 最近中文字幕高清中文字幕网1 | 日韩中文字幕精品一区在线 | 高清视频一区二区三区 | 亚洲 欧美 小说 | 国产亚洲精品资源在线26u | 99热精品成人免费观看 | 国产精品免费综合一区视频 | 九色国产 | 亚洲影院手机版777点击进入影院 | 亚洲一区自拍 | 图片小说综合 | 2018精品国产一区二区 | 尤物国产视频 | 亚洲成a人片在线观看播放 亚洲成a人片在线观看精品 | 欧美最新一区二区三区四区 |