草庐IT

静态分配

全部标签

ruby - 有没有办法用内存分配报告来分析 ruby​​ 1.9.2 脚本?

我的ruby​​应用程序遇到了瓶颈,但我无法弄清楚它在哪里变慢了。我找到了memprof,但它不支持1.9。我还发现ruby​​-prof似乎在1.9.2上运行良好,但内存分配需要修补的ruby​​解释器,我只能找到ruby​​1.8的补丁。是否有ruby​​分析器可以完成这项工作? 最佳答案 您是否尝试过分析GC?Ruby1.9.2包括GC::Profiler。GC::Profiler.enableGC.startputsGC::Profiler.report您可能还想查看ObjectSpace.count_objects。

ruby - Mac OSX Lion 和 Ruby - [致命] 分配内存失败

我在使用Ruby和OSXLion时遇到严重问题-每当我尝试启动Rails或什至是rake工具时,我都会收到此错误:[FATAL]failedtoallocatememory我尝试在不同版本(1.9.2-p180、1.9.2-p290、1.9.2-head)中重新编译ruby​​,但它总是一样。但是我注意到我可以删除一些gems,然后“rake”工具会起作用,只有“railss”会因该错误而死掉。似乎实际上没有足够的内存来容纳我正在使用的这么多gem,但这又一次看起来很奇怪——它在雪豹上工作得很好,甚至在我公司的macmini上和Lion上工作——唯一的区别是mini升级了SnowLeo

ruby - Ruby 中的循环分配

我有Enquiry和Consellor模型。我想以循环方式将查询分配给辅导员。如果有3个顾问和5个询问,那么分配应该是:Enquiry1=>C1,Enquiry2=>C2,Enquiry3=>C3,Enquiry4=>C1,Enquiry5=>C2我可以通过查询数据库并通过缓存进行优化来做到这一点,但正在寻找更好的解决方案。 最佳答案 Array#cycle(无限枚举器)很适合这个:counselors=%w(C1C2C3).cycleenquiries=Array.new(5){|i|"Enquiry#{(i+1).to_s}"}

ruby - 使用 rackup 时找不到 Sinatra 静态 Assets

我有一个使用模块化样式配置的简单Sinatra应用程序。当我按照自述文件中的建议使用rackup-p4567启动应用程序时,不提供公用文件夹中的静态Assets。但是当我使用shotgun./config.ru-p4567启动它时,它们就会被提供。为什么会这样?这会发生在生产中吗?这是我的代码:#config.rurequire'rubygems'require'bundler'require'sinatra'require'jammit'Bundler.requireJammit.package!requireFile.expand_path('./stick.rb')runStic

ruby - 使用 Sinatra 时如何控制静态 Assets 的缓存?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。我使用的是最新的Sinatra,并且托管在Heroku上。有没有一种方法可以为从/public目录提供的静态Assets设置缓存header?Sinatra在检查任何已定义的路由之前从/public目录提供文件,所以我不能只在路由中使用cache_control方法。/public目录包含我的应用程序的CSS和JavaScript。我不希望浏览器每次都下载这些文件,因为它们不会经常更改。

Ruby - 覆盖/启用多重分配(例如 `a, b, c = d, e, f` )

在ruby中,你可以这样做:d=[1,2,3]a,b,c=da、b和c将分别接收值1、2和3。d,在本例中是一个Array,ruby知道将其内容分配给a、b,和c。但是,如果d是一个Fixnum,例如,只有a会被分配给d的值,而b和c将被分配nil。d的哪些属性允许它用于多重赋值?到目前为止,在我的探索中,我只能使Array的子类实例以这种方式运行。 最佳答案 这是一个非常没有文档记录的功能,我会谨慎使用它,但我们开始吧。摘自《TheRubyProgrammingLanguage》一书:Whentherearemultiplelva

ruby-on-rails - Ruby:无法分配内存

我正在开发RubyonRails应用程序。我是Ruby/Rails的新手。我使用Ruby2.2.0和Rails4.2。当我运行如下命令时:railsgmigrationSomeMigrationName它失败了Cannotallocatememory-fork(2)(Errno::ENOMEM)我在2014年年中使用MacbookPro,搭载OSX10.10和Vagrant/Virtualbox来运行虚拟机(Ubuntu14.04)进行Rails开发。这是我的Vagrant文件:Vagrant.configure(2)do|config|config.vm.box="ubuntu/tr

ruby - 如何在 Ruby 中使用模块覆盖静态类方法?

moduleImodule???endclassSomeincludeImoduledefself.imethodputs"original"endendSome.imethod#=>"overrided"如何创建一个覆盖静态方法的模块?这是一道深入理解ruby特性的面试题。不要提出问题的另一种表述:) 最佳答案 好的,这是一个工作代码。请注意,您甚至不必触摸目标类!:)classKlassdefself.sayputs'class'endendmoduleFooModuledefself.includedbasebase.inst

ruby - 为什么我不能连接两个字符串并将它们分配给一个符号?

...如本例所示:helloworld.rb:1:syntaxerror,unexpected'=',expecting$end:helloworld="hello".concat("world")我想如果我使用concat,我会修改字符串“hello”并向其添加“world”,然后最终将生成的字符串-“helloworld”-分配给等号左侧的:helloworld符号符号。我认为那是合法的,就像我写的一样::helloworld="helloworld"哦,等等,那也行不通。(挠头)。 最佳答案 Ruby符号不能赋值,因为它们代表

ruby - 是什么阻止了静态类型语言拥有像 Ruby 的 method_missing 这样的东西?

我在静态类型语言方面经验不多(目前正在学习Scala并且很喜欢它!)但我注意到的一件事是它们似乎从来没有像Ruby的method_missing或ColdFusion的onMissingMethod这样的东西。静态类型语言是否有一些固有的限制来阻止或使这变得困难? 最佳答案 当然可以添加处理它们的机制,但这与静态类型不一致:编译时确定您的程序没有类型错误。附录Scala2.9引入了一个实验性选项,可以通过静态类型检查失败的方式动态处理对类型的访问。它在2.10中得到改进并成为非实验性的,尽管它仍然由默认禁用功能标志控制。您可以在SI