每天一段代码,签到

来源:互联网 发布:暴走官方淘宝店 编辑:程序博客网 时间:2024/05/01 22:13
package tmpimport java.lang.management.ManagementFactory/**  * Created by fhqplzj on 17-1-20 at 上午9:56.  */object pro4 {  val memory: Int = inferDefaultMemory()  def inferDefaultCores(): Int = Runtime.getRuntime.availableProcessors()  def inferDefaultMemory(): Int = {    val ibmVendor = System.getProperty("java.vendor").contains("IBM")    var totalMb = 0    try {      val bean = ManagementFactory.getOperatingSystemMXBean      if (ibmVendor) {        val beanClass = Class.forName("com.ibm.lang.management.OperatingSystemMXBean")        val method = beanClass.getDeclaredMethod("getTotalPhysicalMemory")        totalMb = (method.invoke(bean).asInstanceOf[Long] / 1024 / 1024).toInt      } else {        val beanClass = Class.forName("com.sun.management.OperatingSystemMXBean")        val method = beanClass.getDeclaredMethod("getTotalPhysicalMemorySize")        totalMb = (method.invoke(bean).asInstanceOf[Long] / 1024 / 1024).toInt      }    } catch {      case _: Exception =>        totalMb = 2 * 1024        println("Failed to get total physical memory. Using " + totalMb + " MB")    }    math.max(totalMb - 1024, 1024)  }  def checkWorkerMemory(): Unit = {    if (memory <= 0) {      val message = "Memory is below 1MB, or missing a M/G at the end of the memory specification?"      throw new IllegalStateException(message)    }  }}

0 0