org.jruby.Ruby.getTmsStruct()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(3.2k)|赞(0)|评价(0)|浏览(90)

本文整理了Java中org.jruby.Ruby.getTmsStruct方法的一些代码示例,展示了Ruby.getTmsStruct的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Ruby.getTmsStruct方法的具体详情如下:
包路径:org.jruby.Ruby
类名称:Ruby
方法名:getTmsStruct

Ruby.getTmsStruct介绍

暂无

代码示例

代码示例来源:origin: org.jruby/jruby-complete

public static IRubyObject times(Ruby runtime) {
  Times tms = runtime.getPosix().times();
  double utime = 0.0d, stime = 0.0d, cutime = 0.0d, cstime = 0.0d;
  if (tms == null) {
    ThreadMXBean bean = ManagementFactory.getThreadMXBean();
    if(bean.isCurrentThreadCpuTimeSupported()) {
      cutime = utime = bean.getCurrentThreadUserTime();
      cstime = stime = bean.getCurrentThreadCpuTime() - bean.getCurrentThreadUserTime();
    }
  } else {
    utime = (double)tms.utime();
    stime = (double)tms.stime();
    cutime = (double)tms.cutime();
    cstime = (double)tms.cstime();
  }
  long hz = runtime.getPosix().sysconf(Sysconf._SC_CLK_TCK);
  if (hz == -1) {
    hz = 60; //https://github.com/ruby/ruby/blob/trunk/process.c#L6616
  }
  return RubyStruct.newStruct(runtime.getTmsStruct(),
      new IRubyObject[] {
          runtime.newFloat(utime / (double) hz),
          runtime.newFloat(stime / (double) hz),
          runtime.newFloat(cutime / (double) hz),
          runtime.newFloat(cstime / (double) hz)
      },
      Block.NULL_BLOCK);
}

代码示例来源:origin: org.jruby/jruby-core

public static IRubyObject times(Ruby runtime) {
  Times tms = runtime.getPosix().times();
  double utime = 0.0d, stime = 0.0d, cutime = 0.0d, cstime = 0.0d;
  if (tms == null) {
    ThreadMXBean bean = ManagementFactory.getThreadMXBean();
    if(bean.isCurrentThreadCpuTimeSupported()) {
      cutime = utime = bean.getCurrentThreadUserTime();
      cstime = stime = bean.getCurrentThreadCpuTime() - bean.getCurrentThreadUserTime();
    }
  } else {
    utime = (double)tms.utime();
    stime = (double)tms.stime();
    cutime = (double)tms.cutime();
    cstime = (double)tms.cstime();
  }
  long hz = runtime.getPosix().sysconf(Sysconf._SC_CLK_TCK);
  if (hz == -1) {
    hz = 60; //https://github.com/ruby/ruby/blob/trunk/process.c#L6616
  }
  return RubyStruct.newStruct(runtime.getTmsStruct(),
      new IRubyObject[] {
          runtime.newFloat(utime / (double) hz),
          runtime.newFloat(stime / (double) hz),
          runtime.newFloat(cutime / (double) hz),
          runtime.newFloat(cstime / (double) hz)
      },
      Block.NULL_BLOCK);
}

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

public static IRubyObject times(Ruby runtime) {
  Times tms = runtime.getPosix().times();
  if (tms == null) {
    throw runtime.newErrnoFromLastPOSIXErrno();
  }
  long hz = runtime.getPosix().sysconf(Sysconf._SC_CLK_TCK);
  if (hz == -1) {
    throw runtime.newErrnoFromLastPOSIXErrno();
  }
  return RubyStruct.newStruct(runtime.getTmsStruct(),
      new IRubyObject[] {
          runtime.newFloat((double) tms.utime() / (double) hz),
          runtime.newFloat((double) tms.stime() / (double) hz),
          runtime.newFloat((double) tms.cutime() / (double) hz),
          runtime.newFloat((double) tms.cstime() / (double) hz)
      },
      Block.NULL_BLOCK);
}

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

public static IRubyObject times(Ruby runtime) {
  Times tms = runtime.getPosix().times();
  if (tms == null) {
    throw runtime.newErrnoFromLastPOSIXErrno();
  }
  long hz = runtime.getPosix().sysconf(Sysconf._SC_CLK_TCK);
  if (hz == -1) {
    throw runtime.newErrnoFromLastPOSIXErrno();
  }
  return RubyStruct.newStruct(runtime.getTmsStruct(),
      new IRubyObject[] {
          runtime.newFloat((double) tms.utime() / (double) hz),
          runtime.newFloat((double) tms.stime() / (double) hz),
          runtime.newFloat((double) tms.cutime() / (double) hz),
          runtime.newFloat((double) tms.cstime() / (double) hz)
      },
      Block.NULL_BLOCK);
}

相关文章

微信公众号

最新文章

更多

Ruby类方法