问题标签 [heavy-computation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
2158 浏览

c# - C# 性能 - 我应该在 C++ 中编写计算繁重的方法吗?

我正在为一个量化库构建一个原型,该库使用图像处理技术进行一些信号分析。我完全用 C# 构建了初始原型,但性能不如预期。大部分计算是通过繁重的矩阵计算完成的,这些计算占用了大部分时间。

我想知道是否值得为非托管 C++ 代码编写 C++/CLI 接口。有没有人经历过这个?欢迎提出其他优化 C# 性能的建议。

0 投票
2 回答
506 浏览

java - android线程:停止计算量大的线程

我正在我的 android 应用程序中进行一些繁重的计算。因为我不想阻塞 UI 线程,所以我在一个单独的 WorkerThread 中进行计算,它扩展了 Thread。这工作正常。但我无法停止线程。停止线程的正常方法是使用中断()或易失性变量来告诉线程它应该结束。但这仅适用于具有某种循环的线程。我正在使用外部库在线程中进行计算,我无法将 isInterrupted()-check 放入该库中。停止线程的坏方法是使用 stop()-Methode,它已被弃用,但在我的情况下是正确的方法,因为线程只操作内部值。不幸的是,Android 不支持 stop(),因为它不支持已弃用的线程方法。

你现在有其他方法来停止android中的线程吗?提前致谢!托拜厄斯

PS:一些代码来显示问题:

0 投票
0 回答
664 浏览

javascript - Javascript中的重计算

我目前正在为 Javascript(浏览器和节点)构建财务库

该库的主要功能之一是使用选项进行模拟,因此生成模拟时需要进行大量计算。

我目前正在使用我编写的名为 AsyncManager 的库,它使用 HTML5 webworkers(node-webworker) 并将计算分配给一定数量的 webworkers。我这样做的方法是序列化 javascript 计算对象(Calc 对象必须实现一种称为计算(args)的方法),包括函数。

(我通过将函数更改为它们自身的字符串形式来进行函数序列化,然后我在 webworker 中对它们进行评估以将它们转换回函数。)

我想知道是否有人在不提前知道计算的情况下想到了一种更好的方法来使用 webworkers 在 javascript 中分配负载。

0 投票
4 回答
4646 浏览

java - 从 Android UI 线程中移除繁重的计算

我的 Android 应用程序使用了一个特别大的计算,它不断使系统崩溃,因为它位于 Activity 的 UI 线程上。我对多线程没有多少信心,所以我想获得一些关于如何正确执行它的提示。这就是我所拥有的

现在,我很确定我所做的不是“正确的”。(虽然它似乎有效。系统不会崩溃)。基本上,我不确定如何告诉 UI 线程 newthread 在没有这个布尔线程完成的情况下完成了计算。有没有“正确”的方法来做到这一点?

0 投票
4 回答
1854 浏览

objective-c - 当应用程序进行大量计算时,NSTimer 有时会冻结

我想在应用程序在后台进行一些计算时为一些加载点设置动画。我通过一个NSTimer

不幸的是,有时,当计算变得非常繁重时,该方法不会被触发,因此不会发生更新。似乎所有的触发都在一个队列中,在繁重的计算之后触发​​。

有没有办法给予NSTimer更高的优先级以确保它定期调用我的方法?还是有另一种方法可以实现这一目标?

0 投票
3 回答
6084 浏览

javascript - Javascript 中重计算的最佳实践?

我正在处理客户端脚本,需要进行大量计算,例如在数组中推送大量对象,这会导致 JavaScript 停止响应并且浏览器挂起并发出警报:

浏览器警告

是否有处理这些计算的最佳实践或设计模式,我搜索并找到了许多不同的方法来处理这些情况,但解决方案难以实施,所以我需要最佳实践并且易于理解?

(例如,我正在编写代码但我需要一个跨浏览器的通用解决方案,即多线程等)

示例代码(系列包含数千个对象):

0 投票
1 回答
97 浏览

performance - 加快枚举过程

经过几天的优化,这是我的枚举过程代码,该过程包括为W. 该算法将矩阵W分为一个元素为Wgrather的矩阵LimiteInferiore(称为W_legali)和一个仅具有低于限制的元素的矩阵(称为W_nlegali)。

使用一些参数,如Media(又名平均值),rho_b_legali该算法最小化总成本函数。在最后一部分中,我找到目标函数的最低值的组合在哪里,并将其保存在W_ottimo

如您所见,该算法不是那么“干净”,并且矩阵非常大(142506x3000)非常慢......那么,有人可以帮我加快速度吗?

0 投票
2 回答
236 浏览

java - 运行线程占用大量cpu

我正在使用下面的客户端线程连接到我的 NIO 服务器。

这是我的服务器端代码。当我只运行服务器端时,CPU 不超过 5%,但是当我为每个线程运行客户端时,cpu 使用率会提高 20-30%

一切正常。客户端和服务器可以看到对方并进行通信。为了测试我的代码可以接受多少连接,我创建了上述线程的几个实例,这就是问题所在。

当我通过生成这个线程的每个实例来跟踪我的任务面板(windows)的性能部分时,我的 PC 的 CPU 使用率(我使用的是 2.6 核 i5 CPU)提高了 30%,并且通过生成 3 个线程,我的 cpu 使用率大约是100% !!!

我想知道上面占用我 CPU 30% 的代码有什么问题。

0 投票
1 回答
247 浏览

java - 将 75 个客户端连接到服务器后连接被拒绝

我使用以下代码开发了一个服务器通道套接字:

}

如您所见,我在localhostport上运行它9090。为了测试重连接的代码,我开发了一个测试应用程序,它每秒运行一个新线程并连接到服务器。这是我的测试应用程序的代码:

测试应用程序运行但只有 75 个线程可以连接到服务器,并且 75th 之后的所有线程显示以下异常:

对套接字的并发连接数是否有任何限制?或者使用端口 127.0.0.1 和本地主机是否有任何限制?另一个想法是,也许 java 应用程序或 JVM 不能创建超过 75 个线程。

我搜索了所有这些,但没有找到任何答案告诉我上述原因是我的主要问题以及如何修复代码以便我可以测试具有超过 10000 个并发线程的应用程序?

0 投票
0 回答
65 浏览

python - 显示在 [ ] 中的 ipython 笔记本

在 python 笔记本中,完成昂贵的计算后,我得到以下输出:

而不是 In [45 ]: 即带有行号。

早些时候它显示在 [ * ] 中,然后在刷新笔记本后更改为 In [ ]。

我看到我的计算仍在进行中,但需要很长时间(2-3 天)并且变得非常缓慢。那么我应该继续这样做吗?这是 ipython 发生的一个常见问题。发生这种情况时,色彩渲染也会丢失。尽管一旦中断内核就可以正常工作。