当我在ubuntu(10.10)上运行我的ruby脚本时,它会严重降低我的计算机性能(达到需要重新启动的水平)。即使我停止脚本它也没有改善。虽然在Windows上运行时相同的脚本可以运行数小时 - 但对计算机性能没有任何明显影响。
我目前正在使用ruby 1.8.7。在谷歌上查看但无济于事。
可能的原因是什么?
PS:这只是聊天客户端的玩具脚本,因此需要定期将数据传输到Google聊天服务器。
EDIT;代码:
require 'rubygems'
require 'xmpp4r-simple'
username = 'username' #your username here
password = 'password'
answer='ai'
#to_username = gets #prompt will wait for
$i=1
$cap=1
puts "Connecting to jabber server.."
jabber = Jabber::Simple.new(username+'@gmail.com',password)
jabber.status(:dnd,"status")
puts "Connected."
while $cap!=0 do
jabber.received_messages do |msg|
$cap=0
jabber.deliver(msg.from.node+"@gmail.com","You have to pass a captcha test to talk to me.(Its a hard one)Networking==OS then POM==?")
end
end
while $i!=0 do
jabber.received_messages do |msg|
if msg.body.downcase != answer then
message="sorry you failed the captcha try again...(Its a hard one) Networking==OS then POM==??"
jabber.deliver(msg.from.node+"@gmail.com",message)
else
$i=0
jabber.deliver(msg.from.node+"@gmail.com","You passed the captcha.You are entitled to talk to me")
puts msg.from.node
puts "Passed the captcha"
puts "=================="
puts msg
puts "=================="
end
end
end
#$i=0
while (true) do
jabber.received_messages do |msg|
puts "=============================================="
puts msg.body
puts "----------------------------------------------"
message=gets
#$i=1;
jabber.deliver(msg.from.node+"@gmail.com", message)
#end
#end
end
end
它只是一个原型代码。我知道如果在程序的生命周期内不止一个人聊天,代码将不会以预期的方式运行。此外,除了杀死脚本之外,没有办法停止脚本。