社区
Java SE
帖子详情
格式化写文本的,你能高效的处理吗?
tinwoo
2006-08-14 03:25:57
每个域有固定长度,格式化写文本如下:
1xxxxxxx 2xxxxxxxxxxxxx 3xxxxxxxxxxx 4xxxxxxxxxx ...
1xxxxxxx 2xxxxxxxxxxxxx 3xxxxxxxxxxx 4xxxxxxxxxx ...
:
:
比如1xxxxxxx域长度占60个字符,2xxxxxxxxxxxx占100个字符,等等,写50万条这样的记录,你如何提高性能?
...全文
241
19
打赏
收藏
格式化写文本的,你能高效的处理吗?
每个域有固定长度,格式化写文本如下: 1xxxxxxx 2xxxxxxxxxxxxx 3xxxxxxxxxxx 4xxxxxxxxxx ... 1xxxxxxx 2xxxxxxxxxxxxx 3xxxxxxxxxxx 4xxxxxxxxxx ... : : 比如1xxxxxxx域长度占60个字符,2xxxxxxxxxxxx占100个字符,等等,写50万条这样的记录,你如何提高性能?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tinwoo
2006-08-15
打赏
举报
回复
自己顶一下吧
碧海情天-赵亮
2006-08-15
打赏
举报
回复
漏了点,我上面说的"内存地址已固定"的意思,是你可以用多线程.
碧海情天-赵亮
2006-08-15
打赏
举报
回复
很多人都提过内存库了,不仅是在减少数据IO方面,同时,对于格式化数据也是有作用的(只要有起始地址,那么所有数据段因为长度固定,所以地址也是固定的).
对楼主的建议就是,程序素来就是个变的东西,需要你不断检验.
谈论中最好的方法也不一定是对你的实际情况最好的办法,只有你有条件进行比较.最终应该是你最有发言权.
tinwoo
2006-08-15
打赏
举报
回复
最后一顶
tinwoo
2006-08-15
打赏
举报
回复
上楼:
只是在和大家讨论,并非卖关子,你误会了
碧海情天-赵亮
2006-08-15
打赏
举报
回复
是的,问题不要搞得太飘渺.总得有个讨论的基点.
格式化的问题,好像楼主挺在意,多次提及.
是有独到高见,还是都不会? 回复的人都没把它当个事来提,因为最简单和直接的方法在基础知识里就有了.还用说吗.如果楼主另有高见,就不要卖关子了.
hbwhwang
2006-08-15
打赏
举报
回复
上楼:
其实没有最高效的算法,只有相对比较高效的。
在IO操作这块,我一直的经验是BufferedInputStream和BufferedOutputStream相对比较高。
昨天有人提出nio,我已经用实际代码证明了,nio的效率相比BufferedIO,并没有优势。
还有人提出 内存映射文件 ,我虽然没有实证,但是我相信效率应该跟BufferedIO没有大的差别。
TinyJimmy
2006-08-15
打赏
举报
回复
需要找到你效率需要注意的地方, 如
1. 格式化字段
2. 数据IO
针对每个问题可以有不同的解决方案
1. 格式化
a)可用java直接Format方法
b)可用存储过程数据库生成好格式数据到临时表中,直接倒出(用主机能力)
c)如果主机性能OK,资源也够,可将数据库临时表放入内存, 降低物理IO, 也能加快生成效率
...
2. 数据IO
a)直接FileOutputStream写文件
b)使用StringBuffer,到了一定量再写
c)使用BufferWriter写
d)直接在主机上写完后,再一次性取出
...
Java本身的IO主要是用JNI完成的,效率很高.以前偶写的倒出程序, 从数据库取出, java IO, 一般情况下, 普通PC上执行, 不会低于2000条/秒
tinwoo
2006-08-15
打赏
举报
回复
上楼:
我现在还没有用方法实现,意图是找一种最高效的方法,所以请教大家.
hbwhwang
2006-08-15
打赏
举报
回复
tinwoo (稻草人) :
我想问你一下,
1、你现在用什么方法实现的?
2、需要多长时间?
3、在现有基础上,你想缩短多少?
hbwhwang
2006-08-14
打赏
举报
回复
该说的俺在上个帖子都说了,现在就是帮你顶了~
tinwoo
2006-08-14
打赏
举报
回复
上楼,你好像没有明白我的问题
zhmt
2006-08-14
打赏
举报
回复
try {
BufferedWriter out = new BufferedWriter(new FileWriter("filename", true));
out.write("aString");
// 这里继续写其它的。。。。
out.close();
} catch (IOException e) {
}
别人用这个写过数百M大小的文件,很快
zhmt
2006-08-14
打赏
举报
回复
大概用bufferedOutputStream吧,尽量一次io多输出一些数据。
zhmt
2006-08-14
打赏
举报
回复
努力接分升级中...帮你up!
tinwoo
2006-08-14
打赏
举报
回复
怎么减少?!
healer_kx
2006-08-14
打赏
举报
回复
对,减少IO的次数。
treeroot
2006-08-14
打赏
举报
回复
减少io次数
treeroot
2006-08-14
打赏
举报
回复
缓存
Linux下
文本
的
高效
处理
所谓的
文本
处理
是指对
文本
进行查找、替换、删除、排序等操作, linux在
文本
处理
方面提供了大量优秀的工具, 使得在linux下进行
文本
处理
极其的方便. 我们平常的工作中, 经常会用到
文本
处理
, 比如日志分析, 比如...
c语言中用于
格式化
输出的函数,C语言中
格式化
输入输出函数(转)
1.1.1
格式化
输入输出函数一、printf()函数printf()函数是
格式化
输出函数, 一般用于向标准输出设备按规定格式输出信息。在编
写
程序时经常会用到此函数。printf()函数的调用格式为:printf("",);其中
格式化
字符串包括...
C++20
格式化
文本
(format)探究
探究现代C++的特性——format(
格式化
文本
)
Python自然语言
处理
实战(7):
文本
向量化
7.1
文本
向量化概述
文本
表示是自然语言
处理
中的基础工作,
文本
表示的好坏直接影响到整个自然语言
处理
系统的性能。
文本
向量化是
文本
表示的一种重要方式。顾名思义,
文本
向量化就是将
文本
表示成一系列能够表达
文本
...
自然语言
处理
——
文本
分类概述
内容提要分类概述分类流程数据采集爬虫技术页面
处理
文本
预
处理
英文
处理
中文
处理
停用词去除
文本
表示特征选择 分类概述 分类(Classification)是指自动对数据进行标注。人们在日常生活中通过经验划分类别。但是要...
Java SE
62,614
社区成员
307,319
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章