本章的内容是JNI(Java Native Interface),即从Java中访问本地方法(其他语言)。
1、当需要在Java中嵌入其他语言编写的代码,如C时,后者称为本地代码。
2、一般来说,Java虽然在单纯运算方面效率慢于C等,但这往往不是性能瓶颈。例如密码运算在某C/S中占用的时间为10%,网络、I/O速度占90%,用C比Java快两倍,则speedup只有1+0.1*2=1.2,只提升了20%(阿姆达尔定律)。
3、当然,如果项目是遗留的,之前已经有了大量,无法被迁[......]
本章的内容是JNI(Java Native Interface),即从Java中访问本地方法(其他语言)。
1、当需要在Java中嵌入其他语言编写的代码,如C时,后者称为本地代码。
2、一般来说,Java虽然在单纯运算方面效率慢于C等,但这往往不是性能瓶颈。例如密码运算在某C/S中占用的时间为10%,网络、I/O速度占90%,用C比Java快两倍,则speedup只有1+0.1*2=1.2,只提升了20%(阿姆达尔定律)。
3、当然,如果项目是遗留的,之前已经有了大量,无法被迁[......]
1、Java已经逐渐支持在源代码中内嵌调用其他脚本语言,如Javascript / Groovy等。此外,也支持源代码注解,以上这些都是通过编译器API完成的。
2、要内嵌脚本,首先要获取脚本引擎:
// Make manager first
ScriptEngineManager manager = new ScriptEngineManager();
// name could be js/groovy/schema ...
ScriptEngine engine = mana[......]
1、本章关注Java分布式技术,特别是用于两个Java虚拟机之间的远程方法调用RMI。
2、我们想要这样一种机制:客户端的程序员以常规方式进行方法调用,而无需关心在数据在网络上传输或者解析响应的问题(解决方法是在客户端上安装一个代理类,由他处理技术细节)。
3、类似的,服务器端也需要有这样的功能,让传输和业务逻辑分离,于是有了如下的结构:
客户端 <-调用本地方法、返回-> 代理 <-->代理 <-调用本地方法,返回-> 服务器
4、代[......]
又一台服务器出现疑似I/O瓶颈:CPU占用0,系0负载却到了4,而且进程基本停滞了。。
iotop什么挺麻烦的,推荐一下iopp:
https://github.com/markwkm/iopp/
直接下载那个iopp.c编译就好了:
gcc ./iopp.c -o ./iopp
看一下用法:
usage: iopp -h|--help
usage: iopp [-ci] [-k|-m] [delay [count]]
-c, --command display f[......]
1、安全机制是Java不可分割的一部分,主要从以下方面:
(1)语言设计特性(越界、类型、无指针等)
(2)访问控制(文件访问、网络访问)
(3)代码签名(用加密算法表明作者身份,代码是否被修改过)
2、类加载器将在加载时检查类是否完整,它与“安全管理器”协同工作。
3、Java编译器将.java文件编译成字节码.class文件。后者必须由解析器解释后才能执行。每个Java程序至少有三个类加载器:
引导类加载器:是JVM虚拟机的一部分,通常用C实现,他们没有Class[......]