日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

中國最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2

nodejs教程

Node.js Smalloc

閱讀 (2405)

Smalloc

穩(wěn)定性: 1 - 試驗

類: smalloc

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

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

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

返回 receiver 對象,包含分配的外部數(shù)組數(shù)據(jù)。如果沒有傳入receiver ,將會創(chuàng)建并返回一個新的對象。

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

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

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

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

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

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

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

你可以指定外部數(shù)組數(shù)據(jù)的類型。所有可用類型在 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不能凍結(jié),封鎖,阻止對象的使用擴展數(shù)據(jù)擴展。

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

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

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

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 會在內(nèi)部自動檢測分配的長度,因此不必設置任何附加參數(shù)。

smalloc.dispose(obj)

  • obj Object

釋放通過 smalloc.alloc 給對象分配的內(nèi)存。

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

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

smalloc.dispose(a);

// {}

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

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

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

smalloc.hasExternalData(obj)

  • obj {Object}

如果 obj擁有外部分配的內(nèi)存,返回true。

smalloc.kMaxLength

可分配的最大數(shù)量。同樣適用于緩存創(chuàng)建。

smalloc.Types

外部數(shù)組的類型,包含:

  • Int8
  • Uint8
  • Int16
  • Uint16
  • Int32
  • Uint32
  • Float
  • Double
  • Uint8Clamped
關閉
程序員人生
主站蜘蛛池模板: 91精品国产综合久久精品图片 | 高潮毛片| 99精品视频在线 | 欧美精品成人一区二区三区四区 | 免费在线成人网 | 日韩激情在线观看 | 欧美精品一区二区三区在线播放 | 日韩福利在线 | 麻豆网站 | 欧美做受 | 亚洲成人免费在线观看 | av在线一区二区 | 91红桃视频 | 色婷婷激情一区二区三区 | 欧美一区二区免费 | 亚洲欧美激情精品一区二区 | 精品久久免费 | 热久久久 | 国产日韩亚洲 | 欧美色欧美亚洲另类七区 | 精品国产黄 | 精品成人 | 午夜在线影院 | 国产成人精品久久 | 欧美三级视频在线观看 | a在线天堂 | 91欧美一区二区三区综合在线 | 亚洲欧美日韩高清 | 美女视频国产 | 成人国产精品免费网站 | 亚洲xxxx做受欧美 | 久久视频在线看 | 欧美成人免费 | 97国产| 2021国产精品视频 | 国产精品区一区二区三 | 国产粉嫩一区二区三区在线观看 | 麻豆网 | av网站在线看 | 欧美一区二区三区公司 | 欧美一区二区三区啪啪 |