JS在线运行

版本:

所属目录
点击了解高性能代码运行API
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
以下是用户最新保存的代码
思源代码块超出指定高度折叠 发布于:2024-10-04 14:09 思源鼠标移入大纲自动展开子标题 发布于:2024-09-25 02:49 思源建文档的时候自动设置为自定义的某个图标 发布于:2024-09-22 06:35 异步任务线程池 发布于:2024-09-21 16:42 JS的各种锻炼 发布于:2024-09-13 16:53 思源同步感知脚本 发布于:2024-09-16 11:42 在线测试各种脚本! 发布于:2024-09-12 14:37 思源编辑器增加标尺 发布于:2024-09-11 16:21 思源查询不在数据库中的文档2 发布于:2024-09-07 16:32 思源简单锁定笔记 发布于:2024-09-07 23:38 项目热度榜单 发布于:2024-09-06 15:20 修改z坐标 发布于:2024-09-06 15:23 带千分符的大小比较 发布于:2024-09-06 13:05 altG临时 发布于:2024-09-09 18:08 批量导入文档到数据库0.0.6版 发布于:2024-09-25 23:51 最长合法表达式 发布于:2024-09-04 21:55 API集群负载统计 发布于:2024-09-04 19:04 英文输入法 字符串 发布于:2024-09-04 15:05 RMS 变量 发布于:2024-09-04 14:44 最少停车数/停车场车辆统计 发布于:2024-09-04 15:02 hwod面试题联系 发布于:2024-09-06 15:17 时间转换测试 发布于:2024-09-04 09:41 原生JS消息响应 发布于:2024-09-09 18:08 批量导入指定文档及其子文档到指定数据库(0.0.4) 发布于:2024-09-03 04:13 批量导入指定文档及其子文档到指定数据库 发布于:2024-09-05 03:21 思源查询不在数据库中的文档 发布于:2024-09-07 16:37 思源js代码片段获取移动端设备ip 发布于:2024-09-01 12:55 无重复的最长字串儿 发布于:2024-08-28 21:42 思源为数据库文档列表项匹配已设置文档icon * 每次重启时刷新获取的icon * 通过localStorage存储icon(存储方式待优化) > 更新了空文本的处理 发布于:2024-08-28 17:34 你好多阿发 发布于:2024-08-27 11:15 按规则拆分 发布于:2024-08-27 11:07 删除字母匹配到字典里的最长单词 发布于:2024-08-28 20:49 给定一个字符串s和数组arr,找到数组中最长的串, 该串儿可以通过删除s中某些元素得到; 发布于:2024-08-26 17:41 链滴自动签到puppeteer脚本 发布于:2024-08-23 11:51 思源实现斜杠命令菜单展开并支持左右方向键 发布于:2024-08-24 13:15 测试用例20240821 发布于:2024-08-21 16:23 js-arr-tree 发布于:2024-08-21 15:04 给定一个数组找到三个元素,其之和与目标target最接近; 发布于:2024-08-28 20:18 测试批量表单验证 发布于:2024-08-20 17:12 就属于黑色口罩 发布于:2024-08-16 20:44 / 分组 ←→快速切换分组 发布于:2024-08-16 19:08 模拟window.prompt函数 发布于:2024-08-15 10:09 思源Asri主题斜杠命令方向键选择菜单 发布于:2024-08-16 17:21 yield结合promise 发布于:2024-08-12 10:48 edge接入 发布于:2024-08-06 14:30 思源数据库和图表关联脚本示例 发布于:2024-08-06 08:05 自动聚焦当前文档所在目录 发布于:2024-07-30 07:33 JavaScript实现一个带并发限制的异步调度器,保证同时最多运行2个任务 发布于:2024-07-28 18:18 模版字符串翻译替换 发布于:2024-07-25 23:21 识别算法测试 发布于:2024-07-24 15:59 [更多]
显示目录

Smalloc



学习嵌入式的绝佳套件,esp8266开源小电视成品,比自己去买开发板+屏幕还要便宜,省去了焊接不当搞坏的风险。 蜂鸣版+触控升级仅36元,更强的硬件、价格全网最低。

点击购买 固件广场

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()会返回truedispose()不支持缓存,如果传入将会抛出。

smalloc.hasExternalData(obj)

  • obj {Object}

如果obj拥有外部分配的内存,返回true

smalloc.kMaxLength

可分配的最大数量。则同样适用于缓冲区的创建。

smalloc.Types

外部数组的类型,包含: Int8 、Uint8 、Int16 、Uint16 、Int32 、Uint32 、Float 、Double 、Uint8Clamped

由JSRUN为你提供的JS在线运行、在线编译工具
        JSRUN提供的JS 在线运行,JS 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。
yout