小编Mat*_*ell的帖子

如何从Java访问Windows事件查看器日志数据

有没有办法从java类访问Windows事件日志.有没有人为此编写任何API,有没有办法从远程机器访问数据?

场景是:

我在一个远程机器上运行一个进程,来自一个控制Java进程.这个远程进程将东西记录到事件日志中,我希望能够在控制过程中看到它.

提前致谢.

java windows logging

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

有没有办法限制进程的CPU /内存?

问题:我有一台开发人员机器(读取:快速,大量内存),但用户有一台用户机器(读取:慢,内存不多).

我可以使用Fiddler模​​拟一个慢速网络(http://www.fiddler2.com/fiddler2/)我可以看一下使用Process Explorer进行流程时CPU的使用情况(http://technet.microsoft.com/en) -us/sysinternals/bb896653.aspx).

有什么方法可以限制进程可以拥有的CPU数量,或者进程可以拥有多少内存来更有效地模拟用户计算机?(例如,为了隔离性能问题)

我想我可以使用VM,但我正在寻找更轻松的东西.

我正在使用Windows XP,但欢迎任何Windows机器的解决方案.谢谢.

windows testing performance cpu-usage

13
推荐指数
1
解决办法
4929
查看次数

为什么git.pm在cygwin上抱怨'大"请求期间内存不足?

我在cygwin中执行git svn rebase时遇到此错误

Out of memory during "large" request for 268439552 bytes, total sbrk() is 140652544 bytes at /usr/lib/perl5/site_perl/Git.pm line 898, <GEN1> line 3.
Run Code Online (Sandbox Code Playgroud)

268439552是256MB.Cygwin的maxium内存大小设置为1024MB所以我猜它有一个不同的perl最大内存大小?

如何增加perl程序可以使用的最大内存大小?

更新:这是发生错误的地方(在Git.pm中):

 while (1) {
      my $bytesLeft = $size - $bytesRead;
      last unless $bytesLeft;

      my $bytesToRead = $bytesLeft < 1024 ? $bytesLeft : 1024;
      my $read = read($in, $blob, $bytesToRead, $bytesRead); //line 898
      unless (defined($read)) {
         $self->_close_cat_blob();
         throw Error::Simple("in pipe went bad");
      }

      $bytesRead += $read;
   }
Run Code Online (Sandbox Code Playgroud)

我在第898行之前添加了一个打印来打印$ bytesToRead和$ bytesRead,$ bytesToRead的结果是1024,$ bytesRead的结果是134220800,所以它一次读取1024个字节,它已经读取了128MB.Perl的'read'函数必须是内存不足并试图请求加倍它的内存大小......有没有办法指定要请求多少内存?或者该实现依赖?

UPDATE2:在cygwin中测试内存分配时:这个C程序的输出是1536MB

int main() …
Run Code Online (Sandbox Code Playgroud)

git perl cygwin memory-management git-svn

13
推荐指数
4
解决办法
7374
查看次数

使用Maven运行JUnit测试套件

我编写了一个用于运行多个测试用例的JUnit测试套件.

现在我想立即运行我的测试套件类(AllTest.java),以便所有测试由一个类触发,携带和管理.我知道maven-failsafe-plugin是可用的,但还有其他更简单的方法可以从Maven调用JUnit测试套件吗?

我不想为此使用另一个插件.

这是我目前的maven-failsafe-plugin配置:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-failsafe-plugin</artifactId>
  <version>2.9</version>
  <configuration>
    <includes>
      <include>**/AllTests.java</include>
    </includes>
  </configuration>
  <executions>
    <execution>
      <id>integration-test</id>
      <goals>
        <goal>integration-test</goal>
      </goals>
    </execution>
    <execution>
      <id>verify</id>
      <goals>
        <goal>verify</goal>
      </goals>
    </execution>
  </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

junit maven

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

Scala IDE错误 - "projectname"不是Scala项目 -

我已经为eclipse安装了最新的scala ide插件(版本:3.4.2).似乎安装没有任何错误.

我能够创建一个scala项目并添加一个包,但我无法添加scala对象,当时它显示"projectname"不是添加对象对话框中的Scala项目错误消息.

我用谷歌搜索,发现它可能与日食中未启用的JDT编织有关.我已经验证,它在我的环境中启用并运行.

下面是错误的屏幕截图. alt text http://a.imageshack.us/img80/3070/scala.png

我刚开始scala ..有人可以帮我解决这个问题吗?

ide scala eclipse-plugin scala-ide

10
推荐指数
2
解决办法
3847
查看次数

Scala:包含可变和不可变集

我发现了一个我可以理解的可变集的奇怪行为:

我有一个对象,我想添加到一个集合.该类的equals方法被覆盖.当我向set添加两个不同的对象时,它为equals方法产生相同的输出,我在contains方法的可变和不可变集之间得到了不同的行为.

这是代码片段:

class Test(text:String){
  override def equals(obj:Any) = obj match {
    case t: Test => if (t.text == this.text) true else false
    case _ => false
  }
  override def toString = text
}

val mutableSet:scala.collection.mutable.Set[Test] = scala.collection.mutable.Set.empty
mutableSet += new Test("test")
println(mutableSet)
println(mutableSet.contains(new Test("test")))

val immutableSet:scala.collection.immutable.Set[Test] = scala.collection.immutable.Set.empty
immutableSet += new Test("test")
println(immutableSet)
println(immutableSet.contains(new Test("test")))
Run Code Online (Sandbox Code Playgroud)

这产生了输出:

Set(test)
false
Set(test)
true
Run Code Online (Sandbox Code Playgroud)

在我看来,contains的两个调用应该产生相同的输出(true).

任何人都可以帮助我理解这里的区别,或者这是scala不可变集实现中的错误吗?顺便说一句,我使用scala 2.8.1.final

谢谢.

scala mutable set immutability scala-collections

10
推荐指数
2
解决办法
2151
查看次数

如何使用JUnit4以编程方式执行测试套件?

我试图使用API​​调用JUnit测试套件.我知道您可以使用以下方法来配置测试类:

@RunWith(Suite.class)
@Suite.SuiteClasses({
  Test1.class,
  Test2.class, ...
})
Run Code Online (Sandbox Code Playgroud)

但是,有没有办法使用Java API触发整个套件,例如使用JUnitCore?

例如,您可以使用以下代码触发测试:

Runner r = 
try {
  r = new BlockJUnit4ClassRunner(Class.forName(testClass));
} catch (ClassNotFoundException | InitializationError e) {
  // handle
}
JUnitCore c = new JUnitCore();
c.run(Request.runner(r));
Run Code Online (Sandbox Code Playgroud)

更新:

从API,似乎Suite类本身是一个跑步者,因此以下代码似乎工作:

Suite suite = new Suite(klass, new RunnerBuilder() {
... // Implement methods
});
JUnitCore c = new JUnitCore();
c.run(Request.runner(suite));
Run Code Online (Sandbox Code Playgroud)

但我不确定这是否是推荐的方法,或者如果编写上述代码有任何缺点.

junit automated-tests junit4 test-suite

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

好风格:键入别名vs子类化空类/特征

Twitter Effective Scala - Type Aliases中,他们说:

当别名发生时,不要使用子类.

trait SocketFactory extends (SocketAddress => Socket)
Run Code Online (Sandbox Code Playgroud)

SocketFactory是一个生成Socket的函数.使用类型别名

type SocketFactory = SocketAddress => Socket
Run Code Online (Sandbox Code Playgroud)

更好.现在,我们可以针对类型的SocketFactory的值提供了函数文本,还可以使用函数组合:VAL addrToInet:为SocketAddress =>长VAL inetToSocket:长=>插座

val factory: SocketFactory = addrToInet andThen inetToSocket
Run Code Online (Sandbox Code Playgroud)

请注意,类型别名不是新类型 - 它们等同于语法上用别名替换其类型.

我们谈论的那种事情是:

trait Base
trait T1 extends Base // subclassing
type T2 = Base        // type alias
Run Code Online (Sandbox Code Playgroud)

显然,当类/特征具有正文或存储信息时,您不能使用类型别名作为替换.

因此,使用类型别名(T2)而不是使用特征或类(T1)进行扩展具有以下优点:

  1. 如上所述,我们可以使用函数文字进行编写.
  2. 我们不会生成.class文件,编译器会有更少的(理论上).

但是,它有以下缺点:

  1. 要在相同的命名空间(包)中可用,您需要在包对象中定义类型,该对象可能位于使用站点的另一个文件中.
  2. 你不能在Eclipse中的别名上跳转'Open Type'ctrl-shift-T,但你可以在Eclipse中打开声明(F3).这可能会在将来修复.
  3. 您不能使用其他语言的类型别名,例如Java.
  4. 如果类型别名已参数化,则擦除会阻止模式匹配以与特征相同的方式工作.

第四点对我来说是最严重的:

trait T1[T]
trait T2 extends T1[Any]
type T3 = T1[Any]

class C2 extends T2

val c = …
Run Code Online (Sandbox Code Playgroud)

scala

10
推荐指数
1
解决办法
2541
查看次数

在Eclipse中并行运行JUnit4-Tests

maven-surefire-plugin可以并行运行JUnit测试[1] - 是否可以并行运行Eclipse中的JUnit-Tests?

[1]例如

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.12</version>
    <configuration>
        <parallel>methods</parallel>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

"并行运行测试" https://maven.apache.org/plugins/maven-surefire-plugin/examples/junit.html

parallel-processing junit junit4

10
推荐指数
1
解决办法
5321
查看次数

如何以正确的方式创建Scala项目?

我想在scala中创建项目,具有正确的目录结构,测试目录等.我是Java的新东西,所以请告诉我该怎么做?我应该使用哪些工具(maven?)?如何进行测试并配置它们以查看我的项目类?我使用eclipse作为IDE.任何帮助 - 网络资源,链接我会感激:)

java eclipse scala scala-ide

9
推荐指数
1
解决办法
5057
查看次数