Tag: 实时

为什么闰秒会导致问题?

所以在这个时候(但很可能不会很久),Reddit,Meetup,Fark,LinkedIn,Yelp,4Chan都在下降。 Netflix显然也出现了一段时间。 根据Reddit的tweet,他们在2012年6月30日之前遇到了与闰秒有关的问题: https ://twitter.com/redditstatus/status/219244389044731904 “在太平洋标准时间下午5点,我们正在和闰秒有关的一些Java / Cassandra问题,我们正在尽快恢复服务。” 显然,影响其他网站的问题都与闰秒有关。 在阅读维基百科闰秒的文章之后,我想我明白了什么是闰秒……但是我没有得到什么样的奇怪的行为可能发生,如果闰秒不算? 作为编程人员,当我们编写和configuration服务器时,我们应该如何准备闰秒? 我的意思是只有一秒不是吗?

与nvd3.js的实时线图

我正在尝试使用nvd3.js创build一个实时graphics,这个graphics会定期更新,并带有数据被实时处理的印象。 现在我已经能够创build一个定期更新graphics的函数,但是我不能像在向左转换的行那样在“状态”之间进行平滑过渡。 这里是我使用nvd3.js,这里有趣的代码是: d3.select('#chart svg') .datum(data) .transition().duration(duration) .call(chart); 现在,我已经能够使用d3.js来生成我想要的东西,但我更愿意使用nvd3.js提供的所有工具。 这是我想用nvd3制作的 使用d3.js进行转换的有趣代码是: function tick() { // update the domains now = new Date(); x.domain([now – (n – 2) * duration, now – duration]); y.domain([0, d3.max(data)]); // push the accumulated count onto the back, and reset the count data.push(Math.random()*10); count = 0; // redraw the line svg.select(".line") […]

Xmpp与Websocket

我即将开发一个几乎实时聊天的网站。 我知道它可以使用xmpp或websocket协议来实现。 我也知道xmpp协议是在1999年开发的,我想现在应该是成熟的。另一方面,websocket协议已经在2011年开发出来了。 如果xmpp能够处理实时对话,那么websocket需要什么? 这两种协议的主要区别是什么? 而我应该什么时候select其中的一个呢?

实时环境中的exception仍然不受欢迎?

几年前,我被告知,在embedded式系统或(非Linux)内核开发C ++ – 例外 的实时应用程序是不受欢迎的。 (也许这个教训是从gcc-2.95之前的)。 但是我也知道,exception处理已经变得更好了。 那么,在实际应用环境中, C ++就是例外情况 完全不需要的? 甚至通过编译器开关closures? 或非常仔细可用? 或者现在处理得如此之好,以至于几乎可以自由使用它们,还有一些事情要考虑? C ++ 11是否改变了这一点? 更新 :exception处理是否真的需要启用RTTI (就像一个回答者build议的那样)? 是否有dynamic演员参与,或类似?

“星际争霸”和“帝国时代”等即时战略游戏的协议是怎样的呢?

我感兴趣的是这些游戏的协议(和游戏循环)是如何工作的; 任何指针或见解都被赞赏。 我猜测主循环会有一个每秒提前几个“滴答”的世界状态,但是玩家的命令是如何执行的呢? 什么样的数据需要来回?

哪个实时优先级是Linux中的最高优先级

在Linux实时进程优先权范围1至99中,我不清楚哪一个是最高优先级,1或99。 “理解Linux内核”的第7.2.2节(O'Reilly)认为1是最高优先级,考虑到正常进程的静态优先级从100到139,其中100是最高优先级: “每个实时过程都与实时优先级相关联,实时优先级从1(最高优先级)到99(最低优先级)。” 另一方面,sched_setscheduler手册页(RHEL 6.1)声称99是最高的: “在其中一个实时策略(SCHED_FIFO,SCHED_RR)下计划的进程的sched_priority值的范围为1(低)到99(高)。 哪个是最高的实时优先级?

使用Haskell实现大规模的实时系统:如何(如果?)?

我一直很想知道是否有可能将Haskell的强大function应用于embedded式实时世界,并且在Google上search到了Atom包。 我假设,在复杂的情况下,代码可能会有所有经典的C错误 – 崩溃,内存损坏等,然后需要追溯到原来的Haskell代码,造成他们。 所以,这是问题的第一部分:“如果您有Atom的经验,那么您是如何处理debugging编译的C代码中的低级错误并将其修复到Haskell原始代码中的呢? 我search了更多Atom的例子, 这个博客文章提到了C代码22KLOC(显然没有代码:), 包含的例子是一个玩具。 这个和这个引用有一些更实际的代码,但是这是结束的地方。 我在这个主题中提出“相当大”的原因是,我最感兴趣的是如果你能分享你在300KLOC +范围内生成C代码的经验。 由于我是一名Haskell新手,显然还有其他的方式,由于我未知的未知,所以没有find其他的方法,所以在这方面的任何其他自我教育的指针将不胜感激 – 这是问题的第二部分 – “Haskell做实时开发的其他一些实用方法是什么?”。 如果多核也在图片中,那是多余的:-) (关于Haskell本身用于这个目的的使用:从我在这篇博文中读到的内容来看,Haskell中的垃圾收集和懒惰使得它在调度方面非常不确定,但也许在两年之后有所改变。是我能find这个话题最接近的) 注意:上面的“实时”会更接近“硬实时” – 我很好奇,如果可以确保主任务不执行时的暂停时间在0.5ms以下。

硬实时,软实时和实时实时之间的差异?

我已经阅读了关于实时的不同概念的定义,为硬件和软件实时系统提供的例子对我来说是有意义的。 但是,没有一个真实的解释或实例系统的实例。 根据上面的链接: 公司:不经常的截止时间错过是可以容忍的,但可能会降低系统的服务质量。 截止date后,结果的有效性为零。 公司实时性与硬实时还是软实时存在明显的区别,有没有一个很好的例子来说明这种区别? Charles在评论中要求我为新标签提交标签维基。 我为企业实时标签提供的“公司实时系统”的例子是牛奶服务系统。 如果系统在到期时间之后输送牛奶,那么牛奶被认为是“无用的”。 人们可以忍受不吃牛奶的麦片,但是经验的质量却下降了。 当我最初阅读定义时,这只是我在脑海中形成的想法。 我正在寻找一个更好的例子,也许是一个更好的公司实时定义,将改善我的概念。

Pusher vs Pubnub vs开源Socket.io / SignalR.net / Faye / jWebSocket

我现在正在评估Pusher和PubNub,以便在我的主要Web客户端和我的服务器之间启用双向实时通信。 两者看起来都很让人印象深刻,Pusher的文档看起来更好,而PubNub的可扩展性和可靠性显然是他们的强项。 但是,由于我正在pipe理预算,所以我担心Pusher&PubNub成本可能会成为我们的问题,因此我正在考虑使用其中一个开源替代scheme – 我主要关注Socket.io,Faye和jWebSocket。 尽pipe我自己运行这个服务,但是我有我的担忧: 有没有人实际上将Socket.io或其他开源解决scheme扩展到多个服务器之前? PubNub宣称每秒处理1M条消息! ,我有些怀疑Socket.io可以做到这一点,没有难以理解的数量的服务器,如果它可以工作。 如果我使用开源解决scheme,那么在付费服务中是否有可能会错过该行的function? 无论如何,如果我在AWS上有我的服务器,延迟真的会成为一个问题吗? PubNub位于多个地点,所以我希望这可以减less延迟,尽pipe如果消息需要从美国发送到日本,那么在日本有一台服务器将不会帮助延迟,因为它仍然需要以这样或那样的方式去旅行。 感谢您的build议。

是否使用堆内存(malloc / new)创build一个非确定性的程序?

几个月前我开始用C开发空间应用程序的软件,也用C ++开发微控制器。 在这样的系统中有一个经验法则,那就是不应该创build堆对象 (所以不需要malloc / new),因为它使得程序不确定 。 当人们告诉我时,我无法validation这个声明的正确性。 那么这是一个正确的说法吗? 对我来说,困惑是,就我所知,决定论意味着运行一个程序两次将导致完全相同的执行path。 从我的理解,这是一个multithreading系统的问题,因为多次运行相同的程序可能会有不同的线程在不同的次序运行。