草庐IT

读写速度

全部标签

ruby - 为什么某些 Ruby 代码在 2.53GHz 上的运行速度是在 2.2GHz Core 2 Duo 处理器上的两倍?

(本题试图找出为什么一个程序在不同的处理器上运行会有所不同,所以它与编程的性能方面有关。)以下程序在配备2.2GHzCore2Duo的Macbook上运行需要3.6秒,在配备2.53GHzCore2Duo的MacbookPro上运行需要1.8秒。这是为什么?这有点奇怪……当CPU的时钟速度仅快15%时,为什么要加倍速度?我仔细检查了CPU仪表,以确保2个内核中没有一个处于100%使用率(以便查看CPU是否忙于运行其他东西)。难道是因为一个是MacOSXLeopard,一个是MacOSXSnowLeopard(64位)?两者都运行Ruby1.9.2。pRUBY_VERSIONpRUBY_

ruby - 我可以使用 RSpec 模拟标准输入/标准输出来测试控制台读写吗?

我的Ruby程序从stdin读取行并使用puts打印到stdout(终端)。我可以使用RSpec来测试读写吗?我可以像在stdin中编写的那样向我的程序注入(inject)一个字符串,同时检查输出吗?line=STDIN.read.chomp.split另外,我在一个循环中进行读取和写入,直到line[0]被“退出”。我可以在循环运行时进行测试,还是应该调用subject.read_in和subject.write_out? 最佳答案 您可以使用模拟并通过在and_return()方法中列出多个值来多次调用该方法。这些将按照给定的顺

多线程问题:为什么不应该使用多线程读写同一个socket连接?

问题的产生经典的单reactor多线程模式采用的是用主线程处理连接事件以及socket读写事件,业务逻辑的处理则是让线程池里的线程各自竞争处理。既然多线程这么方便,为什么不让线程池里的线程也参与到read和send这个过程中呢?在发送数据的过程中,即使TCP的发送缓存满了,我们也可以记录下当前成功发送了多少字节,然后再次注册一个EPOLLOUT事件,只需等待下次可写事件,继续让子线程发送数据即可,岂不是美哉?解释陈硕大佬的解释对于TCP,通常多线程读写同一个socket是错误的设计,因为有shortwrite的可能。假如你加锁,而又发生shortwrite,你是不是要一直等到整条消息发送完才解

ruby-on-rails - 编辑文本时 Rails 控制台运行速度异常缓慢

在我的一个Rails应用程序中,当我粘贴文本、键入和(尤其是)删除文本时,控制台开始运行得非常慢。我可以在顶部看到irb正在使用大量cpu。但我不知道如何进一步诊断这个问题。它是几周前才开始发生的。我想知道它是否可能与readline/wirble相关?这两个我都用。我刚刚在另一个应用程序中尝试了它,粘贴了一段文本,它看起来同样糟糕-文本以每秒一个字符的速度出现!也许我的命令行历史已经填满了?我怎样才能删除它?(对于Rails控制台,不是我的bash命令行历史记录)感谢任何建议-max编辑-抱歉,应该提供一些系统详细信息。给你:System-Ubuntu10.04Rubyversion

ruby - 如何以较低的速度运行 Selenium(通过 Capybara 使用)?

默认情况下,Selenium在我使用Cucumber定义的场景中尽可能快地运行。我想将它设置为以较低的速度运行,这样我就可以拍摄该过程的视频。我发现Selenium::Client::Driver的一个实例有一个set_speed方法。对应于JavaAPI.如何获取Selenium::Client::Driver类的实例?我可以得到page.driver,但它返回Capybara::Driver::Selenium的实例。 最佳答案 感谢http://groups.google.com/group/ruby-capybara/msg

ruby - 在不破坏 anchor 和别名的情况下读写 YAML 文件?

我需要打开一个YAML文件,其中使用了别名:defaults:&defaultsfoo:barzip:buttonnode:这显然扩展为等效的YAML文档:defaults:foo:barzip:buttonnode:foo:otherzip:buttonYAML::load将其读取为。我需要在此YAML文档中设置新键,然后将其写回磁盘,尽可能保留原始结构。我看过YAML::Store,但这完全破坏了别名和anchor。是否有任何可用的东西:thing=Thing.load("config.yml")thing[:node][:foo]="yetanother"将文档另存为:defau

Ruby Array concat 与 + 速度?

我对Ruby的数组concat()与+操作进行了小型性能测试,concat()速度太快了。但是我不清楚为什么concat()这么快?有人可以帮忙吗?这是我使用的代码:t=Time.nowar=[]foriin1..10000ar=ar+[4,5]endputs"Timefor+"+(Time.now-t).to_st=Time.nowar=[]foriin1..10000ar.concat([4,5])endputs"Timeforconcat"+(Time.now-t).to_s 最佳答案 根据Rubydocs,不同之处在于:数组

ruby-on-rails - 如何使 Rails 3 Assets 的预编译速度更快?

我有一个正在运行的Rails3.2.1应用程序,我正在通过Capistrano使用deploy/assets进行部署,它运行deploy:assets:precompile任务。一切正常,除了编译本身真的很慢。我没有那么多CSS和JavaScript(总共大约8200行)。编译Assets一般需要1-3分钟左右,占整个部署时间的90%左右。有什么办法可以优化吗?也许使用不同的程序来编译Assets或以某种方式优化它?我在Linode5121.9.2-p290、Rails3.2.1上运行该应用程序,如果有任何相关性,我会使用therubyracergem。 最

javascript - 在数组中缓存 jQuery 对象会提高速度吗?

今天我正在使用jQuery制作共享图标效果。效果有点复杂所以想办法优化性能。我最终将$(this)对象缓存到数组中。效果演示我上传了一个使用数组缓存对象的效果示例(将鼠标悬停在图标上以查看效果):http://mahersalam.co.cc/addthis/HTML:أضفللمفضلةشاركفيفيسبوكشاركفيتويترأرسلالصفحةبالإيميلالمزيدمنالخدماتJavascript://ReturnjQuery-objofthesharelinksvarshareLinks=$('#share-widget').find('a').css('opa

javascript - Canvas 使用RequestAnimationFrame以一定速度旋转圆圈

我在JSFiddle中做了一个快速简单的解决方案,以便更好更快地解释:varCanvas=document.getElementById("canvas");varctx=Canvas.getContext("2d");varstartAngle=(2*Math.PI);varendAngle=(Math.PI*1.5);varcurrentAngle=0;varraf=window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.o