有没有办法从java类访问Windows事件日志.有没有人为此编写任何API,有没有办法从远程机器访问数据?
场景是:
我在一个远程机器上运行一个进程,来自一个控制Java进程.这个远程进程将东西记录到事件日志中,我希望能够在控制过程中看到它.
提前致谢.
问题:我有一台开发人员机器(读取:快速,大量内存),但用户有一台用户机器(读取:慢,内存不多).
我可以使用Fiddler模拟一个慢速网络(http://www.fiddler2.com/fiddler2/)我可以看一下使用Process Explorer进行流程时CPU的使用情况(http://technet.microsoft.com/en) -us/sysinternals/bb896653.aspx).
有什么方法可以限制进程可以拥有的CPU数量,或者进程可以拥有多少内存来更有效地模拟用户计算机?(例如,为了隔离性能问题)
我想我可以使用VM,但我正在寻找更轻松的东西.
我正在使用Windows XP,但欢迎任何Windows机器的解决方案.谢谢.
我在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) 我编写了一个用于运行多个测试用例的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) 我已经为eclipse安装了最新的scala ide插件(版本:3.4.2).似乎安装没有任何错误.
我能够创建一个scala项目并添加一个包,但我无法添加scala对象,当时它显示"projectname"不是添加对象对话框中的Scala项目错误消息.
我用谷歌搜索,发现它可能与日食中未启用的JDT编织有关.我已经验证,它在我的环境中启用并运行.
下面是错误的屏幕截图. alt text http://a.imageshack.us/img80/3070/scala.png
我刚开始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
谢谢.
我试图使用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)
但我不确定这是否是推荐的方法,或者如果编写上述代码有任何缺点.
在Twitter Effective Scala - Type Aliases中,他们说:
当别名发生时,不要使用子类.
Run Code Online (Sandbox Code Playgroud)trait SocketFactory extends (SocketAddress => Socket)SocketFactory是一个生成Socket的函数.使用类型别名
Run Code Online (Sandbox Code Playgroud)type SocketFactory = SocketAddress => Socket更好.现在,我们可以针对类型的SocketFactory的值提供了函数文本,还可以使用函数组合:VAL addrToInet:为SocketAddress =>长VAL inetToSocket:长=>插座
Run Code Online (Sandbox Code Playgroud)val factory: SocketFactory = addrToInet andThen inetToSocket请注意,类型别名不是新类型 - 它们等同于语法上用别名替换其类型.
我们谈论的那种事情是:
trait Base
trait T1 extends Base // subclassing
type T2 = Base // type alias
Run Code Online (Sandbox Code Playgroud)
显然,当类/特征具有正文或存储信息时,您不能使用类型别名作为替换.
因此,使用类型别名(T2)而不是使用特征或类(T1)进行扩展具有以下优点:
但是,它有以下缺点:
第四点对我来说是最严重的:
trait T1[T]
trait T2 extends T1[Any]
type T3 = T1[Any]
class C2 extends T2
val c = …Run Code Online (Sandbox Code Playgroud) 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
我想在scala中创建项目,具有正确的目录结构,测试目录等.我是Java的新东西,所以请告诉我该怎么做?我应该使用哪些工具(maven?)?如何进行测试并配置它们以查看我的项目类?我使用eclipse作为IDE.任何帮助 - 网络资源,链接我会感激:)