问题标签 [dart-isolates]

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 投票
1 回答
237 浏览

dart - 使用隔离提高应用程序性能

我有一个生成散列密码的应用程序,生成它需要时间。我认为为了提高性能,我会让散列密码生成器在单独的核心中工作。我的计算机支持 3 个核心处理器,我认为使用 dart:isolate 计算其他处理器核心中的哈希密码是个好主意。

我试过以下:

作为我得到的输出

似乎是,它不能并发工作。我预计,隔离将是第一名或第二名,而不是最后一名。我在这里做错了什么?

0 投票
1 回答
4936 浏览

dart - 如何传递消息以隔离和处理错误

我正在尝试使用 dart 隔离库来提高我的应用程序性能。

看下面的代码:

一切正常,但我只能传递一个静态密码,或者更好地说,我不知道如何动态传递一些东西。在这里你可以看到,密码是硬编码的,但我想传递一个变量。

如果 _generateHashPassword 方法会抛出错误,我该如何处理这个错误?我尝试从 ReceivePort 捕获有关侦听方法的错误

但仍然收到未处理的异常消息。

结论我的问题:

如何将变量传递给隔离上的调用方法?
如何处理隔离错误?

0 投票
0 回答
64 浏览

dart - Loading HTML in the current dom and execute a loaded script

In javascript I created a loader for a wizard. I talk about a single page with a wizard section.

Every (new) sequence state of the page loads a HTML section from the server into the wizard dom section of the page and executes a script. The script for this sequence state is also loaded.

I have seen a lot of discussion about loading Dart scripts and this blog post from Sett Ladd. I understand I can only load Dart scripts in isolates.

My questions:

  1. Can I create the above like wizard in Dart?
  2. When I load a script in an isolate, can I access the "current" page dom?
0 投票
1 回答
526 浏览

sockets - Dart 将 TCP ServerSocket 客户端传递给 Isolate

在 Quora Seth Ladd 曾经说过:

考虑接受新连接并将它们交给隔离来完成工作的可能性。到今天为止,您可以将套接字传递给其他隔离(通过引用)并线性扩展。

我试图以多种方式实现这一目标,但每一种都失败了。我的代码是:

每次都会引发相同的异常。

从套接字获取流给出了相同的结果。有谁知道我怎样才能完成赛斯所说的?

0 投票
1 回答
2057 浏览

dart - Dart Isolates accessing a shared object instance

I'm currently working with isolates to send queries in parallel to a database server. I have a connector-object to build the connection to the database and I would like to share that across all isolates, so I don't have to create a separate connection for every isolate.

So far it seems that I can only share special serializable objects between isolates. I'm using the send- and receive-ports for messaging. For other objects (such as my connector-object) the dart-vm yields the error:

Do you know of any way to share a generic object-instance between multiple isolates? Or do I have to create a separate instance for each isolate?

Thanks!

Pedro

0 投票
1 回答
1639 浏览

dart - 如何结束隔离以及如何在隔离终止时收到通知

终止隔离

当我想结束在使用创建的服务器上启动的隔离时,Isolate.spawn()或者Isolate.spawnUri()
如何终止隔离。

throw x当异常未被捕获时,内部隔离终止隔离。
但我希望有一个更优雅的解决方案。

isolate.kill()投掷Uncaught Error: Unsupported operation: kill

得到通知

我猜当没有更多的异步操作处于活动状态时,隔离结束(类似于main),但我怎么知道隔离是否真的终止了?

有没有办法让父隔离在子隔离终止时得到通知? isolate.addOnExitListener(_sendPort);投掷Uncaught Error: Unsupported operation: addOnExitListener

?

是否有其他方法或者我必须等到这些方法得到支持?

0 投票
2 回答
119 浏览

dart - 带有“https”的 spawnUri()

我正在尝试从托管在 HTTPS 服务器中的文件中动态加载代码。

有没有人成功使用带有https://URI 的 spawnUri() ?我已经测试过,它适用于http://URI。

但随着https://我不断得到:

我想知道我是否遗漏了什么。

例如,您可以简单地尝试以下代码:

我的 Dart VM 版本是 macos_x64 上的 1.6.0

编辑:使用 Uri.parse() 解析 uri 字符串,然后将其作为参数传递给 spawnUri。(正如@user568109 所指出的)

0 投票
1 回答
201 浏览

dart - websocket 和 Isolate.spawnuri

是否可以在使用创建的 Dart 隔离中使用 websockets 形式Isolate.spawnuri

我的理解是,客户端Isolate.spawnuri使用 WebWorkers 并且 WebWorker 不能使用dart:html(DOM)但是,客户端,websockets 是dart:html. 所以这是不行的?

谢谢

(很难测试,尝试使用 Dart 编辑器执行此操作时,我没有收到任何错误或信息,生成的隔离是不可见的,也不会抛出任何可见的错误,它只是挂起)

这里有一些代码来测试这个:https ://gist.github.com/kgersen/148460d056f498a849ef

0 投票
0 回答
384 浏览

dart - 产生 Dart 隔离的内存开销是多少?

我读过生成 Dart 隔离的内存开销约为 2.5mb。但是,该数字的来源是 dartlang.org Google Group 讨论,而不是官方文档。另外,我再也找不到该页面了,我只能找到它的缓存版本链接

~2.5mb 仍然是每个生成的隔离的内存开销吗?

0 投票
0 回答
189 浏览

dart - dart:用于隔离外部本地包中的 uri

我有一个使用聚合物的网络应用程序(不确定聚合物方面是否相关),并且我正在尝试从外部包中生成隔离。虽然我可以很好地导入包,但在 Uri.file 中使用相同的路径会导致 uri 无效。例如:

//packaged_app.dart 库 packaged_app;


我在 uri 上尝试了许多变体,包括:

- 新 Uri.file(路径)和 - 新 Uri(路径:路径)

路径值包括:

- package:packaged_app/packaged_app.dart, - packages/packaged_app/packaged_app.dart, - ../relative/path/to/packaged_app/packaged_app.dart, 和 - /absolute/path/to/packaged_app/packaged_app.dart

一切都无济于事。如果我将 packaged_app.dart 复制到与 main_app.dart 相同的目录中,它运行良好,但感觉很脏。