Ruby:使用';看跌期权';
在我们的RubyWebScraper中,当使用“puts”命令进行故障排除时,与没有向控制台输出任何内容相比,该方法需要花费几分钟的时间才能完成。尽管只输出了几百个(不到一千个)字符串,但仍然如此。我理解,如果一个方法要完成的任务数量较大,那么它需要更长的时间才能完成,但如果长度实际上翻了一番,那就有点荒谬了。特别是当您考虑到很多时间(无论是使用puts还是不使用puts)只是等待在获取请求后不被锁定时 “puts”命令在循环中使用,但输出的数量只有数百个Ruby:使用';看跌期权';,ruby,performance,Ruby,Performance,在我们的RubyWebScraper中,当使用“puts”命令进行故障排除时,与没有向控制台输出任何内容相比,该方法需要花费几分钟的时间才能完成。尽管只输出了几百个(不到一千个)字符串,但仍然如此。我理解,如果一个方法要完成的任务数量较大,那么它需要更长的时间才能完成,但如果长度实际上翻了一番,那就有点荒谬了。特别是当您考虑到很多时间(无论是使用puts还是不使用puts)只是等待在获取请求后不被锁定时 “puts”命令在循环中使用,但输出的数量只有数百个 应该是这样吗?如果是这样,为什么?打印
应该是这样吗?如果是这样,为什么?打印字符串的速度应该很快。也许你正在打印的对象不是字符串,而是它们的
to_s
方法花了这么长时间?@Stefan实际上不是inspect
吗?@JQuist你能展示一些代码吗?最好是一个@MarekLipkap
调用inspect
,而将调用“完成的速度如何随对象的不同而变化?”简单的对象(如数字)可以相对直接地投射。然后是稍微复杂一些的数组和散列,然后是像Nokogiri XML文档这样的复杂对象,to_s
必须将整个文档树转换为XML字符串。