Sockets 使用套接字进行进程间通信有哪些限制?
我正在创建一个Firefox扩展,它允许在Firefox中使用标准ML(SML)作为客户端编程语言。其工作方式如下:Sockets 使用套接字进行进程间通信有哪些限制?,sockets,firefox,firefox-addon,sml,interprocess,Sockets,Firefox,Firefox Addon,Sml,Interprocess,我正在创建一个Firefox扩展,它允许在Firefox中使用标准ML(SML)作为客户端编程语言。其工作方式如下: 该扩展启动一个PolyML进程(带有顶级交互式shell的SML编译器) 然后在扩展和PolyML进程之间建立套接字通信 SML代码从网页中读取,并通过套接字发送到PolyML流程进行评估 然后,这些代码可能会使用我提供的库来处理DOM 下面是DOM库的实现方式: 假设有人执行SML函数DOM.getElementById 此请求通过套接字转发到扩展,扩展在扩展中执行页面上的Ja
(如果有人感兴趣,项目位于)TCP可以调整为更高的吞吐量或更快的响应时间。为了获得更高的吞吐量,需要将套接字缓冲区设置为更大的值。为了使用较小的数据块获得良好的响应时间,需要设置TCP_节点延迟套接字选项。环回上的TCP如果经过微调,则应与任何IPC机制相同。较新的windows操作系统会对环回适配器进行特殊优化,如增加MTU大小等,以使其更快。您使用TCP吗?UDP?还是UNIX套接字?后者应该更快,因为操作系统不必关心网络错误。你知道这些是TCP、UNIX还是可配置的吗?我还意识到瓶颈可能是JSON编码/解码,尽管我已经记不清其中有多少被使用了。如果我正确理解源代码,nsIServerSocket总是使用AF_INET,即使是用于本地连接。给出了两种方法之间的比较:对于AF_UNIX,在80.575200秒内传输100GB;对于AF_INET+环回,在226.717520秒内传输100GB。IHMO,TCP速度足够快,可以跨平台工作。Windows AFAIK上没有UNIX套接字。您最大的问题将是数据序列化。
val _ = Canvas.beginPath context;
val _ = Canvas.setFillStyle context fillColor;
val _ = Canvas.setStrokeStyle context fillColor;
val _ = Canvas.setLineWidth context size;
val _ = Canvas.moveTo context posx posy;
val _ = Canvas.lineTo context posx_new posy_new;
val _ = Canvas.stroke context;
val _ = Canvas.arc context posx_new posy_new (size/2.0) 0.0 6.28 true;
val _ = Canvas.fill context;