我有一段非常简单的 Typescript 代码,可以解析特定的数据格式,输入是 UInt8Array。我已经尽可能地优化它,但我认为这个相当简单的解析器应该能够比我让它作为 JS 运行得更快。我想尝试使用 AssemblyScript 在 web 程序集中编写它,以确保我没有遇到任何 Javascript 引擎的怪癖。
正如我现在发现的,我不能只是将 TypedArray 传递给 Wasm 并让它自动工作。据我所知,我可以传递一个指向数组的指针,并且应该能够直接从 Wasm 访问它而无需复制数组。但是我不能让它与 AssemblyScript 一起工作。
以下是一个最小示例,显示了我如何无法将 ArrayBuffer 传递给 Wasm。
设置 Wasm 导出的代码主要来自自动生成的样板:
const fs = require("fs");
const compiled = new WebAssembly.Module(
fs.readFileSync(__dirname + "/build/optimized.wasm")
);
const imports = {
env: {
abort(msgPtr, filePtr, line, column) {
throw new Error(`index.ts: abort at [${line}:${column}]`);
}
}
};
Object.defineProperty(module, "exports", {
get: () => new WebAssembly.Instance(compiled, imports).exports
});
Run Code Online (Sandbox Code Playgroud)
下面的代码调用了 WASM,index.js 是上面的胶水代码。
const m = require("./index.js");
const data …Run Code Online (Sandbox Code Playgroud) 我正在使用Mono将C#编译为Wasm,以便在浏览器中使用它。运行以下命令会生成一堆DLL,一个wasm文件和一些JS文件。
csc /target:library -out:regex101.dll \
/noconfig /nostdlib \
\
/r:$WASM_SDK/wasm-bcl/wasm/mscorlib.dll \
/r:$WASM_SDK/wasm-bcl/wasm/System.dll \
/r:$WASM_SDK/wasm-bcl/wasm/Facades/netstandard.dll \
/r:$WASM_SDK/framework/WebAssembly.Bindings.dll \
\
regex101.cs
mono $WASM_SDK/packager.exe \
--copy=always --out=./publish \
regex101.dll
Run Code Online (Sandbox Code Playgroud)
如果将这些生成的js文件包含在网页中,则可以在浏览器中运行已转换的代码。但是,最终的大小(大约23个dlls + JS + Wasm)总共约为15mb,这非常大,我相信这是因为没有运行消除死代码的情况,并且包含了框架的很大一部分。
建议我运行一个链接器(请参阅https://github.com/firasdib/Regex101/issues/156#issuecomment-497281517)以执行无效代码消除,但是作为我的.NET新手,我不知道。不知道该怎么做。
任何帮助将非常感激。
有没有一种方法来实例2个WASM模块,a并且b这样a甚至可以从功能b,也从访问不同的记忆b?例如,让我们说,a通过调用的实现变得内存malloc在b暴露于a。这样,所有有用的内存都来自b. 如果是这样,怎么做?更具体地说,这是否可以在没有额外开销的情况下完成,并且不需要在这些操作之间与 JavaScript 交互(实例化模块和设置导入/导出时的初始化步骤除外)?这种间接和内存访问的性能特征是什么,或者根本没有问题?在这种情况下,我想进行微优化。
(我已经阅读了几篇文档,但我找不到明确的答案。我认为在 Wasm 的未来版本中,有标准化动态链接的计划会有所帮助,但我们还没有。)
我有一个我想要存储的数据集,并且能够在Octave中加载
18.0 8 307.0 130.0 3504. 12.0 70 1 "chevrolet chevelle malibu"
15.0 8 350.0 165.0 3693. 11.5 70 1 "buick skylark 320"
18.0 8 318.0 150.0 3436. 11.0 70 1 "plymouth satellite"
16.0 8 304.0 150.0 3433. 12.0 70 1 "amc rebel sst"
17.0 8 302.0 140.0 3449. 10.5 70 1 "ford torino"
15.0 8 429.0 198.0 4341. 10.0 70 1 "ford galaxie 500"
14.0 8 454.0 220.0 4354. 9.0 70 1 "chevrolet impala"
14.0 8 440.0 215.0 4312. …Run Code Online (Sandbox Code Playgroud) 目前,WebAssembly 仅支持少数参数类型,即固定大小的整数和浮点数。这意味着我只能从接受和返回数值的 C/Rust 模块中定义和导出函数。
然而,根据 Mozilla 开发者网络,我可以从主机 Javascript 操作模块的内存:
由 JavaScript 或 WebAssembly 代码创建的内存可以从 JavaScript 和 WebAssembly 访问和更改。
这听起来很有希望——它表明我可以将内存的一部分指定为字节缓冲区,在其中跨越语言障碍来回传送更复杂的数据。我的模块中的函数可以接受并返回指针(它们本身就是i32固定大小的整数),从而在当前约束内工作。
不幸的是,目前尚不清楚我应该如何管理这些内存。如果我需要从 JS 向 Wasm 进程传递数据,我需要直接写入 Memory 对象,但不知道 Memory 中的哪些区域是空闲的。
最安全的策略是什么?我是否应该导出一对malloc-and-free风格的函数,让 JS 能够在调用 Wasm 之前请求内存?或者是否有既定的最佳实践?
我猜想Wasm二进制文件通常是JIT编译为本机代码,但是如果有Wasm源,是否有工具可以查看实际生成的x86-64机器代码?或以不同的方式询问,是否存在使用Wasm并输出本机代码的工具?
我希望使用 Rust 为 node.js 编写一个 npm 模块。经过一些快速研究,我找到了两种方法:
使用一种或另一种的技术差异是什么?
我正在尝试创建一个应用程序,它根据用户的生活方式和药物的限制来预测服药的时间。
我的意思是:
我从患者那里得到的信息包括:
• 他/她吃他/她的饭菜的次数和时间
• 他/她什么时候醒来和入睡
• 他/她必须服用多少药片
从药物的限制来看:
• 药物是否应空腹食用
• 药物是否应随餐或不随餐食用
• 患者是否需要在进餐和服药之间休息(尚未显示在下面的屏幕上) )
• 等
示例数据集:https :
//ibb.co/Gvry945
我应该使用什么类型的模型/力学/算法来预测服药时间?回归是正确的吗?我需要预测 1,2,3,4 有时是 5 列。
我根据以下内容编写了一个简单的代码:
https
://docs.microsoft.com/pl-pl/dotnet/machine-learning/tutorials/predict-prices 如何使用回归任务使用 ML.NET 预测多个标签?
它工作正常,我可以预测超过 1 列。但是,我的问题仍然是空白单元格。当我试图从该数据中预测某些内容时,它总是显示错误的值,并且只有在所有单元格都完成后才能正常工作。
那么,我应该将我的数据集分散到更少的数据集(所有单元格都完整)吗?例如:
https
:
//ibb.co/m8HVPvb 当我只预测 TimeToTakeMedicine1
https://ibb.co/qNk9xQL
当我预测 TimeToTakeMedicine1 和 TimeToTakeMedicine2 时
https://ibb.co/GnRc1c0
当我预测 TimeToTakeMedicine1、TimeToTakeMedicine2、TimeToTakeMedicine3 等时。
有没有更简单更好的方法来解决这个问题?
预测 TimeToTakeMedicine1、TimeToTakeMedicine2、TimeToTakeMedicine3 的工作代码(为了简单起见,我去掉了 OnEmptyStomach、WithMeal 和 IsPossible)
using System;
using System.IO;
using Microsoft.ML;
using Microsoft.ML.Trainers;
namespace NextTry
{
class Program
{
static readonly string _trainDataPath = Path.Combine(Environment.CurrentDirectory, …Run Code Online (Sandbox Code Playgroud) 有很多语言可以编译成 Wasm。使用 C 或 Rust 等语言编写比 Python 有性能提升吗?或者因为它被编译为 Wasm ,所以一切都一样吗?
我正在寻找二维平面图数据集进行注释,但找不到大数据集。我已经找到了站点二维平面图数据集,但这里没有很多数据集。如果找到大约 500 个 2d 地板图像(.jpg)数据集就好了
webassembly ×7
c# ×2
javascript ×2
memory ×2
.net ×1
annotations ×1
c ×1
compilation ×1
executable ×1
io ×1
machine-code ×1
matlab ×1
ml.net ×1
mono ×1
octave ×1
python ×1
rust ×1
typescript ×1
x86-64 ×1