我正在创建一个Firefox扩展,允许在Firefox中使用Standard ML(SML)作为客户端编程语言.它的工作方式如下:
以下是DOM库的实现方式:
我的问题是,理论上,在套接字通信方面,我应该期待在性能方面有什么限制?
我做了一些非常近似的分析,似乎在扩展和PolyML之间使用这个接口,我可以大约发送2500条消息/秒,平均大小为70字节/消息.
为了说明这一点,我想在浏览器中使用Canvas元素绘制一些动画.如果我想达到20fps,这意味着我需要在0.05秒内绘制每一帧,这意味着我每帧只能发送大约125条消息.这些消息对应于JavaScript函数调用.例如,下面的代码绘制一个路径并进行9次JavaScript函数调用,这些调用对应于套接字通信中的9条消息.
Run Code Online (Sandbox Code Playgroud)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;
显然,JavaScript有更好的性能,我想你可以在0.05秒内完成数千(数百)次Canvas/DOM函数调用,用于绘制帧.
所以,我想我的问题是,您是否有使用套接字通信进行非常快速的消息交换的经验.我想知道2500条小信息/秒(在这种情况下,相当于150千字节/秒)是否正确或者我可能做错了什么.
例如,有人怀疑firefox中的套接字实现(特别是通过JavaScript接口https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIServerSocket使用它)对于这种快速交互并不是很好.例如,从套接字读取是通过事件循环机制完成的.那就是我依靠Firefox ..来通知我有关传入套接字消息的可用性,有时在发送消息和接收它之间有一个很大的(例如250ms)延迟(虽然这似乎只有在firefox忙于做的时候才会发生其他的事情,我对套接字通信的理论限制更感兴趣 …
我正在尝试刷新页面上的图像,但它没有发生.我有一个带图像的页面,我需要根据需要更新这些图像.要更新图像,我将图像上传到灯箱,然后关闭灯箱.页面上的图像应自行更新.现在,我尝试了$('#imageid').attr('src',newimage).我想在这里特别提一下,旧图像和新图像的名称是相同的.我觉得这是问题所在.如果我硬编码任何其他图像,它会在灯箱关闭后立即出现.但是,当我尝试通过为'src'属性添加相同的图像名来刷新图像时,没有任何反应.
有人可以帮助我解决这个问题,并显示更新的图像.
谢谢.
编辑:这可能是缓存吗?
我的程序必须从文件中接收输入,输入可以是字符,整数或字符.有了这个,我必须从文件中给出的元素创建一个树.输入的类型在文件的开头给出.我的问题是我的insertNode函数将该元素作为泛型类型T接收,但该文件被读作字符串.如何将String转换为T型?
尝试编译:
String element = br.readLine();
T elem = (T)element;
Run Code Online (Sandbox Code Playgroud)
导致编译错误:
"发现:需要java.lang.String:T"
我正在尝试将一个本地gif作为电子邮件附件发送到Google appengine上.电子邮件将发送但没有附件.
message = mail.EmailMessage(sender="My image <whomever@gmail.com>",
subject="image")
message.to = "Jim <whomever@gmail.com>"
message.body = my_body_text
message.html = my_body_html
image = open('./bust.gif', 'r')
attachments=[(image.name, image.read())]
message.send()
image.close()
Run Code Online (Sandbox Code Playgroud) 有一个DateTime变量,例如:
DateTime testDate = new DateTime(2011,12,15,00,00,00);
Run Code Online (Sandbox Code Playgroud)
如何在今天的每个小时实现一个foreach循环?
就像是:
foreach (int myHour in testDate.Date)
{
}
Run Code Online (Sandbox Code Playgroud)
但是这种方式不能编译.
我正在迭代一组项目并将它们显示在嵌套在div中的列表中.目标是每天都有一个div,每个div中显示当天的项目.
我如何在HAML中执行此操作?我不认为我可以(或应该)有条件地关闭并创建一个新的标签,就像我在erb中所做的那样.
我试过了:
- @items.each do |item|
- if item date is diff from previous make a new container
.container
%h2 #{item.date}
= yield_content :display_item item
- else
= yield_content :display_item item
Run Code Online (Sandbox Code Playgroud)
但这会产生以下结果:
<div class="container">
<h2>01/28/2012</h2>
<ul>
<li>
... item
</li>
</ul>
</div>
<li>
...item
</li>
Run Code Online (Sandbox Code Playgroud)
但是我希望同一个div中的其他项目.我正在使用ruby,sinatra(包括content_for帮助器)
如何从标准输入读取并写入标准输出.System.Diagnostics.Process.StandardInput的MSDN引用没有帮助,因为它单独启动进程,然后重定向标准输入/输出但是如果进程已经运行并调用我的应用程序来为它提供一些数据.这是一个让事情变得清晰的例子:
我只是使用Unix管道,即cygwin中的cat命令(类似Linux的环境中的Linux),它基本上只读取标准输入并打印到标准输出.以下是命令:
%cat input/sample.txt | SRC/CSHARP/maptest
但这似乎不起作用.
如果有人知道ruby在这里,因为我不在这里我想在C#中做同样的事情:
#!/usr/bin/env ruby
STDIN.each_line
do |line|
some code here
end
Run Code Online (Sandbox Code Playgroud)
这里有一些我希望在c#或vb.net中完成的python等效代码:
#!/usr/bin/env python
import re
import sys
for line in sys.stdin:
val = line.strip()
Run Code Online (Sandbox Code Playgroud)
有解决方案吗
提前致谢.
所以我正在研究这个按日期排序日期的系统.我正在使用制作时间,我一切正常,直到它击中1900年或以下.一切都返回12月24,1644类型的日期.任何人都可以为什么会发生这种情况并且可能解决这个问题?
这个代码:
//$decades is a string ex: '1950-1960'
$decade_array=explode('-',$decades);
$date_active=date("M-d-Y", mktime(0, 0, 0, 1,1 , trim($decade_array[0]) ));
$date_inactive=date("M-d-Y", mktime(0, 0, 0, 1, 1, trim($decade_array[1]) ));
echo $date_active.' '.$date_inactive;
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个C++程序,使用cURL从网站上读取.我已经开始使用cURL示例simple.c中的代码了.如果我完全使用该代码,无论我尝试访问哪个URL,我都会收到错误#52:"来自服务器的空回复".这适用于我尝试的任何网址.如果我从命令行使用cURL,它似乎工作正常.
我的程序的冗长响应是:
*About to connect() to www.google.com port 80 (#0)
* Trying 74.125.91.99...* connected
*connected to www.google.com (74.125.91.99) port 80 (#0)
>GET / HTTP/1.1
Host: www.google.com
Accept: */*
* Empty reply from server
* Connection #0 to host www.google.com left intact
* server returned nothing (no headers, no data)
*Closing connection #0
Run Code Online (Sandbox Code Playgroud)
代码是:
CURL *curl;
CURLcode res;
curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com");
curl_easy_setopt(curl, CURLOPT_VERBOSE, TRUE);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
Run Code Online (Sandbox Code Playgroud) 如果我有一个日期如下的数据集:
head(ds$TransStartTmdte)
[1] "2011-05-09 08:50:12" "2011-05-09 09:03:46" "2011-05-09 09:06:49" "2011-05-09 09:13:05" "2011-05-09 14:21:58" "2011-05-09 14:23:00"
Run Code Online (Sandbox Code Playgroud)
如果每行重新表示"事务",我如何计算每秒的事务数.
日期格式为POSIXt
dput(head(ds$TransStartTmdte))
structure(list(sec = c(0.007, 0.013, 0.018, 0.012, 0.043, 0.039
), min = c(34L, 34L, 34L, 34L, 34L, 34L), hour = c(14L, 14L,
14L, 14L, 14L, 14L), mday = c(9L, 9L, 9L, 9L, 9L, 9L), mon = c(4L,
4L, 4L, 4L, 4L, 4L), year = c(111L, 111L, 111L, 111L, 111L, 111L
), wday = c(1L, 1L, 1L, 1L, 1L, 1L), yday = c(128L, 128L, …Run Code Online (Sandbox Code Playgroud)