掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 3369|回复: 14

[讨论] txt编辑器处理100M以上,有新看法吗

[复制链接]

该用户从未签到

发表于 2014-9-12 11:10:55 | 显示全部楼层 |阅读模式
本帖最后由 wubis 于 2014-9-12 11:24 编辑 5 C+ V+ n1 M; T. q/ v  _4 X

  f1 e8 m5 ^2 E! m6 t4 O3 z论坛里很多人用ultraedit(以下简称ue)和emeditor(em),但是我用过后也不觉得...
2 E9 b9 d% A8 D首先,之前处理过国语辞典59m txt(被我用notepad++(npp)精简到这样),可是这个过程也不是很快(1g amd athlon x2 双核xp),尤其是转十六进制时,我还怀疑烧内存了。
1 f4 [! `$ a+ |( o2 ^! ^! p5 `2 _% n) n+ j" i4 l( Q. w
emeditor替换速度还行,可是它占用的是文本的不止2倍内存,可能还多一点(我选择用内存作为缓冲区了)。有一次我打开一份100m以下的文件,被吃了500m有多内存。小文件就没用它处理过了。
9 S% x0 i! p- D1 Y# S
5 {+ I- L1 ^; T* U! |2 geditplus处理大文件没用过,不过其正则和行标签真的很实用(我还不会)
$ M, h! A6 Z5 Z& X7 C7 g  `, I" T7 e) x6 _
npp才是我要吐嘈的,一份用npp处理过的txt不能build,然后全选复制粘贴到另外一个新npp文档后就可以build了,而且新文件比旧文件大了3m,这种情况出现多次了,npp都是较新版的,第一次出现这种情况让我十分头痛,格式都是dos/windows utf8 无bom的,后来积累了这种经验,遇到问题直接全选复制。如果有高手知道这是怎么一回事,请做科普- V  k3 o+ \' {  h, X6 G
% @) M- y5 M. s0 l/ x, b
npp也是用scintilla的,我那个有问题的用的是3.3还是3.4的dll。以前的scite替换速度也一般,稍微比emeditor慢一点,可是替换超过十万次的时候,emeditor说放弃撤销记录可以快一点,实际上快1倍左右。scite/npp就明显快了,最近替换一个</font>311万次,npp大概用了30-40秒,也是把txt载入到内存的。而且scite/npp载入的内存说实话真的比em小,大概txt的1.5倍到2.5倍,当然随着编辑进行会增加到挺大的。) T% R; F$ N4 Q& C0 \4 J! b

( z1 y  e) R  W* K% J* H5 j最近的scite更新到3.5,那速度真的快多了,比3.5以前的真的不是一个档次,约是npp的1.3-1.5倍,(在一份oald8上处理<span 类标签的替换),真的建议对npp的特色功能没依赖的用以下最新版的scite) ]: j8 a" B6 s# t) n3 L2 x1 V% U  C
8 ?* O$ B$ {3 _( A. T4 X
还有npp的空白行删除功能可能会把所有换行符都删掉,我再也没试过,也不知道具体bug.9 V, o4 z% m5 `5 j9 m; _# e
科普:scite和npp都用同样的scintilla.dll,npp用的要旧点,scite就是scintilla的作者的演示作品0 q0 l9 w; H( n3 E) `7 t$ Z

: L! T; r2 v5 G) ^本帖不为口水,只为交流经验,不要激动,我对上述几个也就这些了解,要想比性能,按一般流程做

该用户从未签到

 楼主| 发表于 2014-9-12 11:12:28 | 显示全部楼层
顺便问以下linux系,vi/vim处理大文件怎样,

该用户从未签到

 楼主| 发表于 2014-9-12 11:18:46 | 显示全部楼层
本帖最后由 wubis 于 2014-9-12 11:35 编辑
. }  ^+ i3 [+ A1 p$ Q; w- U8 s0 s' I0 b% [. R9 I- M
everedit有专业用户科普以下吗。
1 E3 E9 Z1 U3 V% Z还有对textforever的切割txt10m上限表示无语,这处理oald8也太小了吧,命令行的工具倒是很多也没多大限制,可是有窗口的就这个吗

该用户从未签到

 楼主| 发表于 2014-9-12 11:34:35 | 显示全部楼层
不过scite/scintilla系(包括geany)的替换字符并循环查找时最后会自动定位到最后一行,npp倒是不会,其他的就没试过了。这也是我为什么还用npp,第一就是上述,接着可以替换另外的标签(在最后一行看不到的),第二就是处理一些gbk写的旧mdx源文件转utf8,scite转gb系码不方便。
% u$ q+ o, `) o/ V% K$ A# k5 h/ i% V) }4 x
如果有人用linux/kde 的话,kate/kwrite系也能够打开100m的文件,(再大的就没敢试了,先用scite替换一些没用的标签减小体积),而且kate系对编码支持较好(还是不如npp),但是k系替换速度十分勉强

该用户从未签到

发表于 2014-9-12 11:34:58 | 显示全部楼层
ultraedit 和 emeditor 各有优缺点,而且大部分都是互补的
& [: P: X0 S" a7 Y. H反正我是交替用,再不能就用万能的编程

该用户从未签到

 楼主| 发表于 2014-9-12 11:35:57 | 显示全部楼层
meigen 发表于 2014-9-12 11:342 P% `4 Z4 K' Q; W: n& j. Q
ultraedit 和 emeditor 各有优缺点,而且大部分都是互补的) w: R; R2 M  F7 N* E* D! k- P; ]
反正我是交替用,再不能就用万能的编程
% l9 y+ A# S% Y' t6 x
你说的万能的编程是指自己写脚本处理吗

该用户从未签到

发表于 2014-9-12 11:38:39 | 显示全部楼层
wubis 发表于 2014-9-12 11:35
+ ]( C) A3 J5 _/ H% B你说的万能的编程是指自己写脚本处理吗
. R+ J1 f- h" {7 b2 v2 A3 g: K
脚本或者语言都行,能达到目的(而且是快速地)即可

该用户从未签到

发表于 2014-9-12 11:39:04 | 显示全部楼层
4 m. g0 A6 X# ]" r9 s6 I

! I; J+ s6 T8 k# _; v0 C) U: L升级硬件,一劳永逸,节省大量时间。. c" c" `* P, n* N1 ^

, I4 t+ Y# t/ s$ Q我这儿开 2G txt,无压力。- p7 @# \  x, T1 S7 O. C, B6 q
- X7 P$ |7 H/ T3 p7 i/ @) r

该用户从未签到

 楼主| 发表于 2014-9-12 12:31:27 | 显示全部楼层
itarcy 发表于 2014-9-12 12:09
+ q# S4 t  W' F2 B' {ultraedit我脑子笨,用不惯~. i* K, v% H8 b7 N- ?) D# O5 {
everedit专业版在用,做得很好(只是您得花软民币),适合我这样的懒人~
% \; [- V9 A# P. ~/ ~6 S7 G
akelpad 效率高在哪里,替换速度快吗,处理100m+有延迟吗

点评

快  发表于 2014-9-12 12:48

该用户从未签到

 楼主| 发表于 2014-9-12 12:34:26 | 显示全部楼层
嗯,不得不说还有notepad2,跟notepad++很类似,性能方面和便捷性因为少用所以不清楚

该用户从未签到

 楼主| 发表于 2014-9-12 12:43:59 | 显示全部楼层
wubis 发表于 2014-9-12 11:121 g6 T( ]3 M0 A' s) I# p( J& N
顺便问以下linux系,vi/vim处理大文件怎样,
4 I$ ^5 L$ N9 W: m1 h$ w
自己答:enwiki上说都支持>4gb, 一般的scite/npp不行,emacs 2g, notepad2可能也有限制。看小vi/vim了,

该用户从未签到

发表于 2014-9-12 13:40:09 | 显示全部楼层
Oeasy 发表于 2014-9-12 11:39! R+ {5 {3 Q  F+ b
升级硬件,一劳永逸,节省大量时间。
1 E3 c& _; {9 a' ?; G6 `
# S2 {4 [, ?# k  |: S( [我这儿开 2G txt,无压力。
* Q: }# I( {! ?* Z! l( V
啥配置呀?这么强!
  • TA的每日心情
    擦汗
    2024-9-20 12:01
  • 签到天数: 784 天

    [LV.10]以坛为家III

    发表于 2014-10-8 15:35:12 | 显示全部楼层
    npp是指notepad++吗?

    该用户从未签到

    发表于 2014-10-8 18:39:31 | 显示全部楼层
    本帖最后由 whitegerry 于 2014-10-8 18:43 编辑 ; q3 R& R$ f" |
    : k4 L3 v) F. O
    笔记本处理500M左右的文本,2600多条正则,有些正则需要多次执行,只有用脚本之类的了。$ Q; Q3 _5 {( o# T0 r8 G- J
    em的正则查找我碰到过bug,匹配到的结果比实际的替换数量要多。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2025-5-10 22:36 , Processed in 0.022095 second(s), 22 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表