开发工具:
文件大小: 296kb
下载次数: 0
上传时间: 2019-07-02
详细说明:自从第一个Java版本开始,很多开发人员一直都在尝试让Java获得最少和C/C++一样的表 现。JVM提供商尽他们最大的努力去实现一些新的JIT算法,但是还是有很多需要做的,特别 是在我们使用Java的方法上。dIm
nu11){
0
ectoutp
u-stream
close()
3
提升标准序列化速度的最简单方法时使用 Randomaccessfile对象:
01
p
ublic
oid
testNrit
Buffere
d(Test○b
ject
test
s-ring
fileNa
throws
ion
Object
Outputs
∈ai
obiect○u
putstre
nu11;
03
Y
04
Rand
omaccess
File raf
new
RandomEd
sessIle
(fileNam
File
Outputs.
ream fos
new
Fillout
u-stream
(raf. get
FD();
06
bje
oUtput
一下a2m
new
Ch
t ou
tputstre
am(fos)
07
bie
c-O:tput
reain
tobie
-(test
08
£ina11
If
(object
u-putstr
11){
0
b
ectoutp
u-stream
CI
1
更高深点的技术是使用Krw框架,新旧版本的差距是很大的,我做过测试。因为性能比较上
并没有体现出特别引人注意的差异,所以我将使用2.x版本,因为它对用户更友好而且更快
止
01
prlvate
static
Kro
new
Kryo()氵
version
public
oid
testNrit
eBuffere
d(Test.ob
j∈Ct
七est
Scrin
fileName
) throws
CExcept
ii
04
Output
output
null
try i
omAccess
Fil
Cess
woFe
1⊥e
(fil
Nam
07
lew
Cutput(n
ew
Fileoutp
ustream
(raf. get
MAX BUFF
ER STZE)
rite○b
ject(out
put
test)i
finall
if
(outout
=nu11)
11
○u
tput Clo
e();
2
最后一个方案是在 Martin Thompson的文章中提到的( Native c/C++ Like performance for
ava Obiect Serialisation),介绍了怎样在Java中像C++那样和内存打交道。
01
publi
void
testwnrit
eBuffere
d(restor
Ject
test
fileName
throws
上 xcept
Rand
AccessEd
1∈raf
null
try t
04
buFfer
memory
ffer
new
MemoryS
fter(AX
BUFFER
S工2三)
05
raf
new
sessile
(fileNam
06
test
write(
emoryBuf
fer
rat
write(me
moryBuff
r getOu
ffer(
08
catch
(工 DExcep
1F
(raf
nu11){
0
f close(
2
Testobject写入方法如下:
01
public
void
write(Me
cryBuff
e 1
unsafe
ffer)i
02
unsafe
Buffer
u-Long(1
angaria
1e);
03
usaf
Buffer. p
utlongAr
ray(long
Array)i
04
//we
support
11
05
boolea
objectEd
1sts
siringo
ject I=
nu11
06
unsafe
Buffer.p
ucBoolea
n(object
Exists)i
07
If
(objecte
xists)f
08
unsd
feB ffer
putchar
Array (st
ringobie
c-, toCha
Array(
09
object
Exists
seconds
ringobje
C-!=
nu11;
usafe
Buffer.p
ucBoolea
n(object
Exists
if
(objectE
xists)(
feB.
ufc
nfh
a
Array(se
condstri
object
g=r
直接内存缓冲区类(已简化了的,仅仅为」展示这个思想)
publ
class
Memorybu
ffer f
02
tting
gUbxo
enyen
sate
flect
public
at
tin
na
i1f
Sare
unsafe
Unsafe
1. getUn
safe(
04
05
privat
e final
byte[]
上 utter
06
Px工va七
e stati
final
ong
byteArra
botset
fe
rrayBase
Offset(b
te「1.c1
ass
privat
e static
final
ong
langara
yOffset
unsafe. a
rraybase
Offset (1
ong[].Cl
ass)i
-he
REsets
0
privat
七atic
final
int
SIZE OF
LONG
2
cher
e s
14
ivat
ng
pce-0
public
Memoru
ffer(int
buffers
z∈
buffer
new
byte [buf
fersize
_8
olic
final
yte[]
getBuffe
Iffer
22
24
public
final
void
FulOng(
ona
value)
unsa
fe. puto
ng(buffe
kyteArra
yOffset
pos,
value)i
26
SIZ三F
工NG
28
pnn
a l
ond
geelong(
30
long
res lt
unsafe. g
e=Long(b
uffer
上 terRa
yoffset
pos)i
sI2三OF
⊥ONG;
retu
n
reslt:
34
public
final
void
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.