javascript - 浏览器的快速IPC方法

标签 javascript c++ winapi ipc

我编写了一个应用程序来累积数据(几 MB/秒,但每秒更新 10 次)并通过 javascript 在浏览器中显示当前进程。

问题是目前我将数据写入文件并使用 javascript 加载它,但这会使应用程序非常缓慢,人们提示他们的硬盘工作很多。

我很想使用一些标志,如“FILE_ATTRIBUTE_TEMPORARY”来告诉我的操作系统不要实际将文件写入磁盘,但 javascript 要求我先关闭文件句柄(否则 firefox 无法打开它)。因此它将在那时写入磁盘,从而消除了最初使用该标志的意义。

我考虑过使用 mysql 数据库之类的东西,但我真的想让它尽可能简单,而且我更喜欢一种不会强制用户设置一些 http 或 mysql 服务器的解决方案。

最佳答案

在您的独立 C++ 应用程序中包含一个网络服务器,并直接从内存中提供数据。

我认为这是避免您现在面临的 I/O 开销的唯一选择。在 JS 中没有 IPC、消息队列或类似东西的接口(interface)。 TCP(或 UDP,带有 websockets)似乎是避免磁盘 I/O 的唯一可能方法。另一种选择是用浏览器插件替换您的 JavaScript,该插件可以使用 native 代码访问操作系统的功能。

注意:在 UNIX 环境中,您可以在文件系统中创建一个 FIFO 套接字,这也可能(或可能不会)满足您的目的。不过,我认为 Windows 不支持这样的功能。

关于javascript - 浏览器的快速IPC方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13352906/

相关文章:

javascript - Vue.js/webpack : how do I clear out old bundle main-*. js 文件,当热重载转译它们时?

c++ - ShellExecute 异步(从 C++ 中启动程序并立即退出)

c++ - 我怎样才能像 Microsoft 应用程序一样创建 TreeView

winapi - Win32 大对齐内存分配

javascript - react 通量 Action 并存储类依赖关系

javascript - react native : Cannot read propert 'length' of undefined

javascript - PHP基于正则表达式显示弹出消息

c++ - 如何有选择地使 QWidget 接受鼠标单击的焦点?

c++ - 我必须删除这个对象吗? (如果我不打算被删除)

python - 将键发送到 Python 中的非事件窗口