在Ruby中设置CPU相关性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Ruby中设置CPU相关性相关的知识,希望对你有一定的参考价值。
require 'rubygems' require 'inline' # By Peter Cooper - http://www.rubyinside.com/ # Oodles of inspiration and examples from # http://www-128.ibm.com/developerworks/linux/library/l-affinity.html class LinuxScheduler inline do |builder| builder.include '<sched.h>' builder.include '<stdio.h>' builder.c ' int _set_affinity(int cpu_id) { cpu_set_t mask; __CPU_ZERO(&mask); __CPU_SET(cpu_id, &mask); if(sched_setaffinity(getpid(), sizeof(mask), &mask ) == -1) { printf("WARNING: Could not set CPU Affinity, continuing as-is "); return 0; } return 1; } ' end # cpu_id is 0-based, so for core/cpu 1 = 0, etc.. def self.set_affinity(cpu_id) self.new._set_affinity(cpu_id.to_i) end end # Set this process's CPU affinity LinuxScheduler.set_affinity(ARGV.first) # Hog up all the CPU time on that processor 1000000.times { b = rand(100) ** 100 }
以上是关于在Ruby中设置CPU相关性的主要内容,如果未能解决你的问题,请参考以下文章