草庐IT

noopener

全部标签

ruby - Ruby 的 stdlib Logger 类是线程安全的吗?

简单来说就是标准库LoggerRuby中的线程安全类?Google发现的唯一有用信息是论坛上有人说它“似乎”是线程安全的。而且我不想花时间测试记录器来弄清楚它是否正确。目前我正在使用log4r这是线程安全的,但如果标准库已经做到了,那就太过分了。 最佳答案 快速查看logger.rb会发现如下代码:defwrite(message)@mutex.synchronizedoif@shift_ageand@dev.respond_to?(:stat)begincheck_shift_logrescueraiseLogger::Shift

ruby - 你有什么策略来保持低内存使用率?

Ruby真的很耗费内存——但也值得每一点。您如何保持低内存使用率?您是避免使用大字符串并改用较小的数组/散列,还是让垃圾收集器完成这项工作对您来说没有问题?编辑:我找到了一篇关于这个主题的好文章here-古老但仍然有趣。 最佳答案 我发现Phusion的RubyEnterpriseEdition(主线Ruby的一个分支,垃圾收集功能得到了很大改进)在内存使用方面产生了巨大的变化......此外,它们还非常容易安装(和删除),如果您发现需要)。您可以在theirwebsite上找到更多信息并下载。.

ruby - 了解 Ruby 和操作系统 I/O 缓冲

IO缓冲在Ruby中是如何工作的?使用IO和File类时,数据刷新到底层流的频率如何?这与操作系统缓冲相比如何?在自信地读回数据进行处理之前,需要做什么来保证给定数据已写入磁盘? 最佳答案 RubyIO文档并未100%清楚地说明这种缓冲的工作原理,但您可以从文档中提取以下内容:RubyIO有自己的内部缓冲区除此之外,底层操作系统可能会或可能不会进一步缓冲数据。相关方法看:IO.flush:刷新IO。我还查看了Ruby源代码,对IO.flush的调用也调用了底层操作系统fflush().这应该足以让文件缓存,但不能保证物理数据到磁盘。

ruby - 在 Ruby 中写入二进制文件

有没有像我们以前在C/C++中那样将二进制数据写入二进制文件的简单方法?例如,如何在不使用复杂数学的情况下创建一个包含序列化4字节整数值的4字节文件? 最佳答案 您可以使用Array#pack和String#unpack与二进制表示形式相互转换。将它们与IO#write结合起来和IO#read,然后你就走了。 关于ruby-在Ruby中写入二进制文件,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q

ruby - 有人尝试过 Crystal 编程语言(机器代码编译的 Ruby)吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭6年前。Improvethisquestion和许多其他人一样,我始终坚信“Ruby永远不会存在纯编译器,因为该语言对于静态编译器来说过于动态,无法工作。”但我最近偶然发现了这些:TheCrystalprogramminglanguageatGitHubStaticallycompiledRuby这两个项目看起来都很有趣。它们可以为我们提供原生编译语言的速度(以及通常是商业需求的编译语言的混淆代码),同时保留Ruby的所有(或大部分)

ruby-on-rails - Ruby:阅读 PDF 文件

我正在寻找一种在Ruby中(在Linux和OSX上)读取/解析大型PDF文件的快速可靠的方法。直到现在我才找到相当古老和简单的PDF-toolkit(一个pdftotext-包装器)和PDF-reader,它无法读取我的大部分文件。尽管这两个库提供了我正在寻找的功能。我的问题:我错过了什么吗?是否有更适合(更快、更可靠)解决我的问题的工具? 最佳答案 您可能会找到Docsplit有用的:Docsplitisacommand-lineutilityandRubylibraryforsplittingapartdocumentsinto

ruby - 如何在没有 Xcode 的情况下在 Mac OS X Mountain Lion 中安装 Ruby 1.9.3?

我想知道在OSX10.8MountainLion上为Ruby1.9.3构建开发机器的替代方法,它不需要Xcode。在我写这个问题的时候,MountainLion现在是GoldenMaster,所以它可以被认为是最终版本。Xcode还不能这样说,它还是预览版。RVM建议在Xcode上安装osx-gcc-installer,但我不想弄乱我的系统。在没有Xcode的情况下,在MountainLion上安装Ruby1.9.3的最干净的方法是什么? 最佳答案 事实证明,osx-gcc-installer是替代Xcode以安装Ruby1.9.3

ruby-on-rails - 如何使用 Ruby 在现有 PDF 上编辑或书写?

我有几个PDF模板文件,其中包含复杂的内容和几个空白区域。我需要能够在这些空白区域中书写文本并将生成的PDF保存在文件夹中。我用谷歌搜索了这个问题的答案,但没有找到明确的答案。更好的解决方案之一是PDF::Toolkit,但需要购买Adob​​eAcrobat才能为现有PDF文档添加可替换属性。PHP世界因FPDI而得天独厚。可用于简单地打开PDF文件并在现有内容上书写/绘图。有一个Rubyportofthislibrary,但它的最后一次提交发生在2009年初。而且该项目看起来并没有得到广泛使用和支持。问题是在现有PDF上编辑、书写或绘图的更好的Ruby方法是什么?这个问题似乎也没有

ruby-on-rails - Heroku dynos/worker 的性能如何?

在www.Heroku.com上具有1或2个Dynos的站点可以处理多少流量增加worker会改善这一点吗?对测功机/worker的任何帮助将不胜感激。 最佳答案 这blogentry可能有用。他详分割析了heroku可能遇到的瓶颈类型,以及增加dynos的帮助,并提供了officialperformanceguideonheroku的链接和信息。以及一些可帮助您测试自己的应用的工具。工作人员的表现实际上取决于您的网站是如何构建的以及您将它们用于什么目的。称为DelayedJobs的后台处理(图像格式化、帐户修剪等)是你如何让他们工

ruby-on-rails - 服务器启动时如何修复 "Your Ruby version is 2.3.0, but your Gemfile specified 2.2.5"

我在运行服务器时遇到此错误,我该如何解决? 最佳答案 为了兼容性,您最好安装Ruby2.2.5。本地计算机中的Ruby版本与Gemfile中声明的版本不同。如果您使用的是rvm:rvminstall2.2.5rvmuse2.2.5否则,如果您使用的是rbenv:rbenvinstall2.2.5rbenvlocal2.2.5否则如果你不能通过rbenv改变ruby​​版本,readhere 关于ruby-on-rails-服务器启动时如何修复"YourRubyversionis2.3.0