小编Bhu*_*van的帖子

zeroMq中pub-sub和push-pull模式之间的区别

这两张图片来自http://zguide.zeromq.org/page:all.

如果我们忽略推拉模式中的下沉,这两种模式之间有什么区别?消息的传输方式是否存在差异,如果是,有什么区别?

messaging message-queue zeromq

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

为什么java编译上的并行执行会在时间上呈线性增长

time javac Main.java                                      --> 0m1.050s
time javac Main.java & javac Main.java                    --> 0m1.808s
time javac Main.java & javac Main.java & javac Main.java  --> 0m2.690s
time javac Main.java & ... 8 time                         --> 0m8.309s
Run Code Online (Sandbox Code Playgroud)

当我们javac并行运行命令并且每次增加javac命令时~1 sec都会添加所有javac命令来完成.

为什么线性增长是时间?

javac运行过程中的所有过程都涉及某种类型locks,如果是,如何克服它以便不会在时间上有线性增长


PS:上面我已经试过上single core machine,double core machine,4 core machine都表现出相同的行为.

PS2:环境RedHat7,javac 1.7.0_79

java linux cpu javac linux-kernel

27
推荐指数
1
解决办法
2481
查看次数

Eclipse快捷方式,用于查找覆盖方法的所有子类

是否有Eclipse快捷方式可以查看覆盖该方法的所有类m重写方法

eclipse eclipse-plugin

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

为什么我们可以降低扩展类中属性的可见性?

我有两节课Parent:

public class Parent {
    public String a = "asd";

    public void method() {

    }
}
Run Code Online (Sandbox Code Playgroud)

而且Child:

public class Child extends Parent{
    private String a = "12";

    private void method() {

    }
}
Run Code Online (Sandbox Code Playgroud)

Child,我尝试覆盖父method,它给出了编译时错误,cannot reduce visibility of a method其中没有问题.

但是,为什么这个错误不适用于财产a?我也降低了可见度a,但它没有给出错误.

java inheritance visibility field

16
推荐指数
2
解决办法
1661
查看次数

如何在Hibernate中记录数据库事务的开始和完成

sql_show = true
Run Code Online (Sandbox Code Playgroud)

hibernate中的这个属性打印出运行的sql,但我想查看begin transactioncomplete transaction语句,以便我可以跟踪事务持续时间并查看在哪个事务中运行的查询.

谷歌搜索揭示了这一点

log4j.logger.org.hibernate.SQL = DEBUG, defaultAppender
log4j.logger.org.hibernate.type = DEBUG, defaultAppender
log4j.logger.org.hibernate.transaction=DEBUG, defaultAppender
Run Code Online (Sandbox Code Playgroud)

还应该显示交易级别数据.但它没有.

调查更多我查看了hibernate代码并找到了一个类名

org.hibernate.ejb.TransactionImpl
Run Code Online (Sandbox Code Playgroud)

这个类有begin和complete方法,但是这个方法不记录任何东西.

有关如何在hibernate中查看事务级别信息的任何建议
我正在使用hibernate 2.2

java hibernate log4j transactions glassfish

12
推荐指数
2
解决办法
9827
查看次数

具有并发慢速TCP客户端连接的tomcat Java NIO

我的讨论

没有NIO:
对于每个keepAlive连接服务器继续阻塞线程.

使用NIO:
此连接器有几个轮询线程用于保持所有连接用户的连接活动,而只要数据(新的HTTP请求)可用,就会调用工作线程

现在:如果我有一个简单的servlet,它将一个100 KB的字符串返回给客户端(浏览器).

....
String HunderdKBString = "reallylongstring"
PrintWriter out = response.getWriter();
out.println(HunderdKBString);
....
Run Code Online (Sandbox Code Playgroud)

如果连接了1 KB连接的客户端,则接收字符串大约需要100秒.
那么java线程将被阻止大约100秒?

TCP缓冲区,Java OutputStreamWriter其他缓冲区如何影响线程块时间?

PS:使用apache-tomcat-8.0.24在centos 7中使用oracle JDK 1.7.

编辑:如上所述线程确实被阻止,缓冲区可以减少线程块时间..如何通过使用这些缓冲区来乐观tomcat/OS减少线程块时间?

在生产环境中如何检测tomcat是否由于连接到它的许多慢速连接客户端而导致线程缺乏?

java tomcat servlets tcp http

12
推荐指数
1
解决办法
880
查看次数

Postgres性能不随核心数量的增加而增加

我正在尝试postgres google-cloud-sql并加载了一个简单的学校架构

 CREATE TABLE school ( 
    id SERIAL NOT NULL PRIMARY KEY,
    name TEXT NOT NULL
);

CREATE TABLE class ( 
    id SERIAL NOT NULL PRIMARY KEY,
    name TEXT,
    school_id INTEGER NOT NULL REFERENCES school
);

CREATE TABLE student ( 
    id SERIAL NOT NULL PRIMARY KEY,
    name TEXT,
    class_id INTEGER NOT NULL REFERENCES class
);

-- ALL id and foreign keys have indexs
Run Code Online (Sandbox Code Playgroud)

总共加载了约1500万行,1500所学校,每所学校500班,每班200名学生.

之后创建一个简单的pgbench脚本

\setrandom sId1 1 20000000
\setrandom sId2 1 20000000
\setrandom sId3 1 20000000

select count(*) from …
Run Code Online (Sandbox Code Playgroud)

postgresql google-cloud-sql

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

chrome使用什么图形库

我知道openGL/directX可以用来渲染图形的图形库.图形处理单元的硬件供应商支持这些库.
我想知道什么chrome用于渲染它的东西.

所以我开始了googling,它出来了:

chrome用于webKit呈现html页面.

googling对于webkit揭示>> webkit只是一个前端.

webkit只是一个前端.这取决于后端和硬件支持.谷歌浏览器skia用作后端,可以使用软件或硬件.所以答案是它取决于后端的植入和它运行的硬件.如上所述,WebKit是否使用OpenGL来渲染CSS过渡?

谷歌搜索skia显示
skia屏幕截图

Device backends for Skia currently include:这意味着什么?
skia是否也是一个前端/接口,而其他人可能使用openGL来实现它?或者
skia也是一个等同于openGL和directX的库?


或者直截了当的问题是
什么库(可以与openGL/directX相比)使用chrome来渲染我的计算机中的东西?

我在没有特殊GPU的戴尔笔记本电脑上使用Windows 7.

opengl rendering google-chrome chromium skia

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

EJB/JPA事务边界

我正在阅读 EJB Transaction boundary和Transaction boundary

让我们专注于RequiresNew Attribute.

这是链接的修改图

在此输入图像描述

所以,让我们说method-B注释RequiredNew attribute.

所以根据理论,当method-A调用method-B新事务时将启动并且已经启动的事务将被暂停,并且当method-B返回时将提交新事务.


现在考虑在S1我们创建一个jpa实体的部分entitymanager.persist(),现在我们将这个实体传递给实体method-Bname字段.

现在当我们从db中返回method-B如何commit进行事务时,实体未被启动的挂起事务提交method-A


PS:Db以读取提交的隔离级别运行.

java hibernate jpa transactions ejb-3.0

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

使用 wildChar 与不使用 wildChar 的通用变量声明

interface Shape { }
class Circle implements Shape { }

class ShapeContainer<T extends Shape> {
    T sh;
    public ShapeContainer(T newInstance) {
        sh = newInstance;
    }
    ...
}
class Main {
    public static void main(String[] a) {
        ShapeContainer<Shape> A = new ShapeContainer(new Circle());
        ShapeContainer<? extends Shape> B = new ShapeContainer(new Circle());
    }
}
Run Code Online (Sandbox Code Playgroud)

ShapeContainer<Shape> A将变量声明为vs的优点和缺点是什么 ShapeContainer<? extends Shape> B

每一项应优先考虑什么条件?

java generics

6
推荐指数
0
解决办法
75
查看次数