gpt4 book ai didi

dart - 如何关闭 dart2js 生成的代码中的类型检查?

转载 作者:行者123 更新时间:2023-12-04 12:01:32 26 4
gpt4 key购买 nike

我正在为简单的矩阵运算编写库。例如:乘以转置矩阵我有一个看起来像这样的方法:

Matrix multTransp(Matrix m2) {
Matrix res = new Matrix(rows, m2.rows);
for (int r = 0; r < rows; r++) {
for (int c = 0; c < m2.rows; c++) {
double sum = 0.0;
for (int i = 0; i < cols; i++) {
sum += get(r, i) * m2.get(c, i);
}
res.set(r, c, sum);
}
}
return res;
}
dart2js (使用 checked: false )生成带有类型和范围检查的代码:

  multTransp$1: function(m2) {
var t1, t2, res, t3, t4, t5, t6, t7, t8, r, t9, t10, c, sum, i, t11, t12;
t1 = this.rows;
t2 = m2.rows;
res = L.Matrix$(t1, t2);
for (t3 = res.m, t4 = res.rows, t5 = t3.length, t6 = this.cols, t7 = this.m, t8 = t7.length, r = 0; r < t1; ++r)
for (t9 = m2.m, t10 = t9.length, c = 0; c < t2; ++c) {
for (sum = 0, i = 0; i < t6; ++i) {
t11 = r + i * t1;
if (t11 < 0 || t11 >= t8)
return H.ioore(t7, t11);
t11 = t7[t11];
t12 = c + i * t2;
if (t12 < 0 || t12 >= t10)
return H.ioore(t9, t12);
t12 = J.$mul$ns(t11, t9[t12]);
if (typeof t12 !== "number")
return H.iae(t12);
sum += t12;
}
t11 = r + c * t4;
if (t11 < 0 || t11 >= t5)
return H.ioore(t3, t11);
t3[t11] = sum;
}
return res;
}

我怎样才能关闭所有这些检查?里面的代码 for循环似乎是我的应用程序的性能瓶颈,所以这里的任何优化对我来说都是一个巨大的胜利。

最佳答案

https://dart.dev/tools/dart2js#options
具体-O3关闭类型检查。
不过,请确保您测试得很好!

关于dart - 如何关闭 dart2js 生成的代码中的类型检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42711081/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com