小编Edd*_*die的帖子

为什么System.nanoTime()和System.currentTimeMillis()如此迅速地分开?

出于诊断目的,我希望能够在长时间运行的服务器应用程序中检测系统时钟的变化.由于System.currentTimeMillis()是基于挂钟时间并且System.nanoTime()基于挂钟时间独立(*)的系统计时器,我想我可以使用这些值之间的差异的变化来检测系统时间变化.

我写了一个快速测试应用程序,看看这些值之间的差异是多么稳定,令我惊讶的是,这些值在我每秒几毫秒的水平上立刻发散.有几次我看到了更快的分歧.这是在带有Java 6的Win7 64位桌面上.我没有在Linux(或Solaris或MacOS)下尝试过这个测试程序来查看它的执行情况.对于这个应用程序的一些运行,分歧是积极的,对于某些运行它是负面的.它似乎取决于桌面正在做什么,但很难说.

public class TimeTest {
  private static final int ONE_MILLION  = 1000000;
  private static final int HALF_MILLION =  499999;

  public static void main(String[] args) {
    long start = System.nanoTime();
    long base = System.currentTimeMillis() - (start / ONE_MILLION);

    while (true) {
      try {
        Thread.sleep(1000);
      } catch (InterruptedException e) {
        // Don't care if we're interrupted
      }
      long now = System.nanoTime();
      long drift = System.currentTimeMillis() - (now / ONE_MILLION) - base;
      long interval = (now …
Run Code Online (Sandbox Code Playgroud)

java windows time datetime

20
推荐指数
2
解决办法
1万
查看次数

使用HashMap的put方法时出现NullPointerException

以下代码给了我一个NullPointerException.问题出在以下几行:

... 
dataMap.put(nextLine[0], nextLine[6]);
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我没有上面的代码运行这段代码,并且调用nextLine[0]nextLine[6]完全按预期工作 - 这就是它们给了我一个csv文件的元素.我HashMap用代码声明并初始化

HashMap<String, String> dataMap = null;
Run Code Online (Sandbox Code Playgroud)

在方法的早期

  String[] nextLine;
  int counter=0;
  while (counter<40) {
    counter++;

    System.out.println(counter);
    nextLine = reader.readNext(); 
    // nextLine[] is an array of values from the line
    System.out.println(nextLine[0] + " - " + nextLine[6] +" - " + "etc...");
    dataMap.put(nextLine[0], nextLine[6]);
  }
  return dataMap;
}
Run Code Online (Sandbox Code Playgroud)

java hashmap nullpointerexception

19
推荐指数
2
解决办法
4万
查看次数

您如何为Bigtable/Datastore(GAE)设计数据模型?

由于Google App Engine数据存储区基于Bigtable,我们知道这不是关系数据库,因此如何为使用此类数据库系统的应用程序设计数据库架构/数据模型

python database google-app-engine bigtable

18
推荐指数
1
解决办法
8778
查看次数

是否有一种解决方法可以解决Java在行走大型目录时表现不佳的问题?

我试图一次处理一个通过网络存储的文件.由于缓冲不是问题,因此读取文件很快.我遇到的问题只是列出文件夹中的目录.在许多文件夹中,每个文件夹至少有10k个文件.

由于File.list()返回数组而不是iterable,因此性能非常慢.Java关闭并收集文件夹中的所有名称,并在返回之前将其打包到数组中.

这个错误条目是http://bugs.sun.com/view_bug.do;jsessionid=db7fcf25bcce13541c4289edeb4?bug_id=4285834并且没有解决方法.他们只是说这已经为JDK7修复了.

几个问题:

  1. 有没有人解决这个性能瓶颈问题?
  2. 我想要实现不可能吗?即使它只是遍历目录,性能仍然会变差吗?
  3. 我可以使用测试版JDK7构建具有此功能,而无需建立在它在我的整个项目?

java performance directory-walk

17
推荐指数
2
解决办法
1万
查看次数

如何修复Postgres,以便在突然关机后启动?

由于突然断电,PostGres在我的本地计算机上运行的服务器突然关闭.重新启动后,我尝试重新启动postgres,我收到此错误:

$ pg_ctl -D /usr/local/pgsql/data restart

pg_ctl: PID file "/usr/local/pgsql/data/postmaster.pid" does not exist
Is server running?
starting server anyway
server starting
$:/usr/local/pgsql/data$ LOG:  database system shutdown was interrupted at 2009-02-28 21:06:16 
LOG:  checkpoint record is at 2/8FD6F8D0
LOG:  redo record is at 2/8FD6F8D0; undo record is at 0/0; shutdown FALSE
LOG:  next transaction ID: 0/1888104; next OID: 1711752
LOG:  next MultiXactId: 2; next MultiXactOffset: 3
LOG:  database system was not properly shut down; automatic recovery in progress
LOG: …
Run Code Online (Sandbox Code Playgroud)

postgresql recovery

17
推荐指数
2
解决办法
6万
查看次数

什么是Java2d更快的替代品?

我正在寻找一些物理模拟,我需要在Java中快速渲染.

我过去遇到过Java2d的性能问题,那么快速的选择是什么?JOGL明显比Java2d快吗?

java performance rendering java-2d jogl

17
推荐指数
2
解决办法
6953
查看次数

在这种情况下,多个条件运算符是个好主意吗?

我刚看到关于条件运算符的维基百科文章中的这段代码:

Vehicle new_vehicle = arg == 'B' ? bus      :
                      arg == 'A' ? airplane :
                      arg == 'T' ? train    :
                      arg == 'C' ? car      :
                      arg == 'H' ? horse    :
                      feet;
Run Code Online (Sandbox Code Playgroud)

我已经改变了一点代码,但想法是一样的.您会发现条件运算符的这种使用是否可以接受?它比if- elseconstruct 更简洁,并且使用一个开关肯定会为bug提供一整套新的机会(任何人都会堕落).此外,if- elses并且switch不能用作R值,因此您必须先创建变量,对其进行初始化,然后根据需要进行分配.

我真的很喜欢这个,但我想知道其他人的想法.

但格式化至关重要.

编辑:我还是喜欢这个.但我理解那些说" switch声明是为此做出的"的人.好吧,也许是这样.但是如果条件是返回的函数调用bool怎么办?或者其他一百万件你无法打开的东西.

你开关恋人真的试图说服我,一个巨大的if- else链比较好?是的,不知道如何使用条件运算符的程序员将无法理解这一点.他们应该学习如何使用它.这不是奥术.

c c++ conditional-operator

17
推荐指数
10
解决办法
3616
查看次数

如何在Integration Services中手动使程序包失败?

我在我的SSIS包中运行了一个Execute SQL Task语句.执行SQL任务正在运行sql并检查表是否有超过1000行.如果它们的行数少于1000行,我想让包失败.

如何在SQL语句中强制失败?

ssis

15
推荐指数
2
解决办法
3万
查看次数

如何检查机器类型?笔记本或台式机?

如何查看当前机器类型?笔记本或台式机?

我从http://blog.csdn.net/antimatterworld/archive/2007/11/11/1878710.aspx得到了这个,它在我的家用机器(笔记本电脑上的Win2003)上运行良好,它返回"便携式",但失败了我的工作机器(笔记本电脑上的Vista),它返回"其他".

这是代码:


public enum ChassisTypes
{
    Other = 1,
    Unknown,
    Desktop,
    LowProfileDesktop,
    PizzaBox,
    MiniTower,
    Tower,
    Portable,
    Laptop,
    Notebook,
    Handheld,
    DockingStation,
    AllInOne,
    SubNotebook,
    SpaceSaving,
    LunchBox,
    MainSystemChassis,
    ExpansionChassis,
    SubChassis,
    BusExpansionChassis,
    PeripheralChassis,
    StorageChassis,
    RackMountChassis,
    SealedCasePC
}

public static ChassisTypes GetCurrentChassisType()
{
    ManagementClass systemEnclosures = new ManagementClass("Win32_SystemEnclosure");
    foreach (ManagementObject obj in systemEnclosures.GetInstances())
    {
        foreach (int i in (UInt16[  ])(obj["ChassisTypes"]))
        {
             if (i > 0 && i < 25)
            {
                return (ChassisTypes)i;
            }
        }
    }
    return ChassisTypes.Unknown;
}

c# wmi

14
推荐指数
3
解决办法
2万
查看次数

在SAS中,Proc Means和Proc Summary有什么区别?

Proc Means和Proc Summary之间究竟有什么区别?许多网站声明这些都是相同的,但除非每个网站都有独特的东西,SAS会创建它吗?

sas

13
推荐指数
2
解决办法
3万
查看次数