小编Ale*_*dru的帖子

Java commons-cli,带有可能值列表的选项

如何使选项仅接受某些指定值,如下例所示:

$ java -jar Mumu.jar -a foo
OK
$ java -jar Mumu.jar -a bar
OK
$ java -jar Mumu.jar -a foobar
foobar is not a valid value for -a
Run Code Online (Sandbox Code Playgroud)

java command-line command-line-interface apache-commons apache-commons-cli

12
推荐指数
3
解决办法
7348
查看次数

如何衡量Java应用程序的性能?

我有一个CPU密集型多线程Java应用程序,我正在寻找在运行时测量其性能的方法(对自动化很有用).我试了几个选择

System.currentTimeMillis();
System.nanoTime();
ThreadMXBean.getThreadCPUTime();
Run Code Online (Sandbox Code Playgroud)

前两个测量实时.最后一个测量只有一个线程的CPU时间.我想测量该进程生成的所有线程的CPU时间.

在复活旧机器并将其专门用于此任务之前,我想看看我现在有哪些选择.

我运行Linux并且平台相关的解决方案是可以接受的,但最不可取.

java performance

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

在窗口内打印,而不是在边框上打印

我正在尝试在curses窗口中写一些东西,但它似乎也写在边框上.我该如何修复下面的代码?

win_self = newwin(LINES / 2, COLS, 0, 0);
box(win_self, 0, 0);
wrefresh(win_self);
wprintw(win_self, "foobar");
Run Code Online (Sandbox Code Playgroud)

c ncurses

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

测试使用mysql的python应用程序

我想为使用MySQL的应用程序编写一些单元测试.但是,我不想连接到真正的mysql数据库,而是连接到不需要任何SQL服务器的临时数据库.

任何图书馆(我在谷歌上找不到任何东西)?任何设计模式?请注意,DIP不起作用,因为我仍然需要测试注入的类.

python mysql unit-testing

7
推荐指数
1
解决办法
2733
查看次数

使用std :: sort()按元素块排序

我有一个边数组,它被定义为C风格的双精度数组,其中每4个双精度定义一个边,如下所示:

double *p = ...;
printf("edge1: %lf %lf %lf %lf\n", p[0], p[1], p[2], p[3]);
printf("edge2: %lf %lf %lf %lf\n", p[4], p[5], p[6], p[7]);
Run Code Online (Sandbox Code Playgroud)

所以我想用std::sort()边长来对它进行排序.如果是struct Edge { double x1, y1, x2, y2; }; Edge *p;,我会很高兴.

但在这种情况下,double数组的块大小不是由指针类型表示的.qsort()允许您显式指定块大小,但通过指针类型std::sort() 推断块大小.

出于性能原因(内存使用和CPU),让我们说创建新数组或以某种方式转换数组是不可取的.出于性能原因,让我们说我们确实想要使用std::sort()而不是qsort().

是否可以std::sort()在转换数据时不浪费单个CPU周期进行调用?

可能的方法:

一个明显的方法是尝试强制转换指针:

double *p = ...;
struct Edge { double arr[4]; };
Edge *p2 = reinterpret_cast<Edge*>(p);
std::sort(...);
Run Code Online (Sandbox Code Playgroud)

但是如何确保数据正确对齐?另外,如何确保它始终在所有平台和架构上正确对齐?

或者我可以使用typedef double[4] Edge;

c c++ arrays sorting

7
推荐指数
1
解决办法
2208
查看次数

如何使用mvn site:site生成网站?

我想用mvn生成一个站点,但我无法将其配置为生成index.html.

我可以运行不同的报告,例如:

$ mvn javadoc:javadoc      # generates target/site/apidocs
$ mvn cobertura:cobertura  # generates target/site/cobertura
Run Code Online (Sandbox Code Playgroud)

$ mvn site:site
Run Code Online (Sandbox Code Playgroud)

不生成任何东西.我想要的是mvn site:site自动生成报告和网站target/site.我还不需要部署它.

作为参考,是我的pom.xml.我也补充说src/site/site.xml,但结果是相似的.

java maven-3

7
推荐指数
1
解决办法
6110
查看次数

recvfrom()超时报警()

我正在调试以下代码:

signal(SIGALRM, testt);                                                  
alarm(1);                                                                
result = recvfrom( listening_socket, buf, maxlen, 0, &from, &fromlen );  
printf("stoped\n");          
Run Code Online (Sandbox Code Playgroud)

man 3 siginterrupt警报所描述的那样应该中断系统调用,但在我的情况下它不会.调用警报处理程序,但recvfrom不会中断.

但是,当使用signal(2)函数指定新的信号处理程序时,默认情况下会中断系统调用.

如果我siginterrupt(SIGALRM, 1);在设置警报处理程序后添加,recvfrom则会按预期中断.

我错过了什么?我的代码出了什么问题?

注意:更换signalsigaction是不是我要找的.

linux posix signals alarm

7
推荐指数
1
解决办法
3118
查看次数

gnuplot中输入数据的标签

我有一个看起来像这样的数据文件

#index name1 name2 name3
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
Run Code Online (Sandbox Code Playgroud)

我想绘制3行:

plot "data" using 1:2 with lines,\
...
Run Code Online (Sandbox Code Playgroud)

除线条标签外,这样做没问题.如何在数据文件中指定列名?

label gnuplot

6
推荐指数
1
解决办法
5489
查看次数

计算极值p的广义均值

如何计算极值p(非常接近0或非常大)的广义均值,并计算出合理的计算误差?

statistics

6
推荐指数
1
解决办法
539
查看次数

堆栈和哈希联合

我正在尝试编写一个数据结构,它是 Stack 和 HashSet 的组合,具有快速推送/弹出/成员资格(我正在寻找恒定时间操作)。想想 Python 的 OrderedDict。

我尝试了一些事情,并得出了以下代码:HashIntSetInt。我需要向源代码添加一些文档,但基本上我使用带有线性探测的散列来存储键向量中的索引。由于线性探测总是将最后一个元素放在已填充单元的连续范围的末尾,因此无需复杂的删除操作即可轻松实现 pop()。

我有以下问题:

  • 数据结构消耗大量内存(一些改进很明显:stackKeys比需要的大)。
  • 有些操作比我使用 fastutil 时慢(例如:pop(),在某些情况下甚至是 push())。我尝试使用 fastutil 和 trove4j 重写类,但我的应用程序的整体速度减半。

你对我的代码有什么性能改进建议?你知道我可以尝试哪些开源库/代码?

java algorithm hash stack

5
推荐指数
1
解决办法
1900
查看次数