【发布时间】:2018-07-25 03:18:31
【问题描述】:
我在我的 Mac 机器上运行 Ruby 时遇到问题。我已经google了一段时间,但没有找到满意的答案,所以我决定问问自己。
我使用 Visual Studio Code 运行了一些简单的 ruby 代码,但我看到了一些奇怪的东西。 ruby 进程占用了 99%++ 的 CPU 使用率。
如您所见,仅一个简单的代码就占用了 99% 的 CPU 使用率。它会一直运行,直到我强制退出服务,有时不只有一个进程。
这是我运行的代码:
range1 = 1..5
something = 3
something.to_s
print something
这是...运行文件,内存位置的东西(我不知道它叫什么)在 Ruby 服务中:
cwd
/
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/bin/ruby
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/libruby.2.5.0.dylib
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/x86_64-darwin17/enc/encdb.bundle
txt
/usr/local/Cellar/gmp/6.1.2_1/lib/libgmp.10.dylib
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/x86_64-darwin17/enc/trans/transdb.bundle
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/x86_64-darwin17/stringio.bundle
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/x86_64-darwin17/etc.bundle
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/x86_64-darwin17/pathname.bundle
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/x86_64-darwin17/openssl.bundle
txt
/usr/local/Cellar/openssl@1.1/1.1.0g_1/lib/libssl.1.1.dylib
txt
/usr/local/Cellar/openssl@1.1/1.1.0g_1/lib/libcrypto.1.1.dylib
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/x86_64-darwin17/digest.bundle
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/x86_64-darwin17/io/nonblock.bundle
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/x86_64-darwin17/zlib.bundle
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/x86_64-darwin17/digest/sha1.bundle
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/x86_64-darwin17/socket.bundle
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/x86_64-darwin17/io/wait.bundle
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/x86_64-darwin17/enc/windows_31j.bundle
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/x86_64-darwin17/json/ext/parser.bundle
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/x86_64-darwin17/json/ext/generator.bundle
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/x86_64-darwin17/readline.bundle
txt
/usr/local/Cellar/readline/7.0.3_1/lib/libreadline.7.0.dylib
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/x86_64-darwin17/strscan.bundle
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/x86_64-darwin17/date_core.bundle
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/x86_64-darwin17/cgi/escape.bundle
txt
/Users/konzaho/.rvm/rubies/ruby-2.5.0/lib/ruby/2.5.0/x86_64-darwin17/digest/md5.bundle
txt
/usr/lib/dyld
txt
/private/var/db/dyld/dyld_shared_cache_x86_64h
0
->0x369452a54d0e4c31
1
->0x369452a54d0e4911
2
->0x369452a54d0e38a9
3
->0x369452a54b81a3e9
4
->0x369452a54b81b769
5
->0x369452a54b81a569
6
->0x369452a54d0e38a9
7
->0x369452a54b81bb29
8
[ctl com.apple.netsrc id 9 unit 27]
9
->0x369452a54d0e5271
10
localhost:59277
11
localhost:59277
12
->0x369452a54b81a0e9
13
->0x369452a54b81a4a9
14
localhost:59277->localhost:59285
15
localhost:59277->localhost:59286
16
localhost:59277->localhost:59287
24
->0x369452a5536d6789
25
/Applications/Visual Studio Code.app/Contents/Resources/electron.asar
27
/Users/konzaho/Devs/ruby/bookTwo.rb
对于 Ruby 来说,仅仅为了运行一个简单的代码而占用这么多 CPU 资源是正常的吗? 是的,我当然可以立即强制退出该过程,但是每次关闭编辑器时都这样做很烦人,而且它也会加热我的机器。
编辑: 我在 Visual Code 的终端和
bookTwo.rb
我与上面提到的代码完全相同。现在我在 Mac 的终端中运行代码,但它没有问题,因为我在 VS Code 终端中运行。
【问题讨论】:
-
不,这不正常。但是根据您提供的信息,我无法确定问题所在。您的 ruby 代码,至少是您提供的代码,不会自行导致此问题。您需要提供更多关于如何执行这段代码的信息。
-
您是否在 Visual Studio 中运行 Ruby 代码?当它运行你的脚本时,它可能会做一些奇怪的事情。仅使用
ruby bookTwo.rb从终端运行它时是否遇到同样的问题? -
@SanderSaelmans 是的,我只是使用与我放在这里的完全相同的代码来拍摄屏幕截图和正在运行的文件,内存的东西。对不起,我忘了提,我在 Visual Studio 终端中运行这个程序,虽然它与 Mac 内置终端相同
-
为什么该代码运行了 39 秒以上?它应该打印 3 并退出。
-
@Max 是的,我在 Visual Code 中运行代码。我在 Mac 的终端中运行了几次代码,但似乎该过程没有我在 Visual Code 的终端中运行的那么高,它甚至只处于 0% 左右。可能是 Visual Code 终端有问题?
标签: ruby macos visual-studio