掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1599|回复: 8

[讨论] 挑战巨大词典 ②

[复制链接]
  • TA的每日心情

    2020-8-15 10:40
  • 签到天数: 146 天

    [LV.7]常住居民III

    发表于 2019-3-30 16:14:29 | 显示全部楼层 |阅读模式
    本帖最后由 zzzz_sleep 于 2019-3-30 16:14 编辑
    " l: F: J4 |; G* s1 O; ~8 }/ j2 f/ j" q' s$ _
    这次目标:
    2 `- T, Q! v/ \
    1. 2.4G Mar 28 14:51 enwiki-20160601-part1.mdx; m( `2 V: Q6 s& N
    2. 2.3G Mar 28 14:30 enwiki-20160601-part2.mdx& h) b! w( [( p
    3. 2.2G Mar 28 14:41 enwiki-20160601-part3.mdx5 c* j6 h* w" z) @+ O
    4. 2.1G Mar 28 14:32 enwiki-20160601-part4.mdx
      % A0 ~6 Z3 p5 c& w4 }
    5. 2.0G Mar 28 14:02 enwiki-20160601-part5.mdx& I4 u; A& ?# `& ?" z, m7 \
    6. 1.3G Mar 28 13:15 enwiki-20160601-part6.mdx
        O0 `- k% P' g# E5 B
    7. 157M Mar 28 13:13 enwiki-20160601-part5.mdd
      * v; b1 i5 ^1 m9 |
    8. 157M Mar 28 11:25 enwiki-20160601-part6.mdd
    复制代码
    6 个 MDX 文件,2个 MDD 文件2 U  `6 O4 a% R, J# d
    电脑基本硬件:
    ; N( R4 @8 [8 b# b/ c/ e3 h
    1. Intel Core i5-5300U @ 4x 2.295GHz. j, H1 g9 t/ V
    2. 8G Ram
      * h1 X" k4 i% o  [* m0 x
    3. SSD HD
    复制代码
    先来简单的, MDD 文件; ?9 ]) B- y3 L1 R" |, y  J: f
    1. 163979226 Mar 28 13:13 enwiki-20160601-part5.mdd
      4 K3 F0 H: [7 q
    2. 163979226 Mar 28 11:25 enwiki-20160601-part6.mdd
    复制代码
    解包到用一目录下/ L7 ]  J1 M& p5 J: |
    1. mdict -x enwiki-20160601-part5.mdd -d mdd/4 y) C2 P5 w: I* E; K% w
    2. 100%|█████████████████████████████████████| 352768/352768 [37:10<00:00, 158.18rec/s]# ^& w. ], _% d- M' N0 G1 n
    3. mdict -x enwiki-20160601-part6.mdd  -d  mdd/
      , D' d& V; j/ |) s
    4. 100%|█████████████████████████████████████| 352768/352768 [36:40<00:00, 160.34rec/s]
    复制代码
    + {( j  _/ G8 S$ j( E  P/ H3 v8 x

    , _3 |3 N+ Z9 d 两个MDD文件大小一样,条目数一样,什么问题?
    : Z' _& b; H. p2 p, f" A7 E 估计 part5.mdx 和 part6.mdx 都需要 mdd 文件,但两个 mdx 都太大了,无法合并在一起,只能分成两个,mdd 文件也只能同样的复制一份+ _* H" F0 i5 W) z

    " l, k" a* \2 \9 @% d+ P: ]3 C重新打包资源文件! g3 [4 m7 J/ `
    1. mdict -c temp/enwiki.mdd mdd/
        Z9 C! t' \; J8 j( T* H+ f
    2. Scan "mdd/": 3527688 z* s) k. v# e# }& T; B
    3. Pack to "temp/enwiki.mdd", h8 O) t' w: d
    4. 100%|█████████████████████████████████████| 352768/352768 [29:58<00:00, 196.12rec/s]
    复制代码
    1. ls -lh temp/enwiki.mdd  d6 K: \. [8 `& Q7 ?. M
    2. 157M Mar 30 06:59 enwiki.mdd
    复制代码
    无压力,主要看 MDX 文件( H4 {! {/ G# |
    1. 2.4G Mar 28 14:51 enwiki-20160601-part1.mdx
      3 b3 u5 F, ~  l7 T/ s: w1 T6 O9 j
    2. 2.3G Mar 28 14:30 enwiki-20160601-part2.mdx
      + e7 A1 B- p$ n# c* V
    3. 2.2G Mar 28 14:41 enwiki-20160601-part3.mdx
      # U3 w, H, A7 u) ]8 k0 Y9 }% K
    4. 2.1G Mar 28 14:32 enwiki-20160601-part4.mdx
      8 o+ K9 R8 b  f" ]+ f6 E; x
    5. 2.0G Mar 28 14:02 enwiki-20160601-part5.mdx0 f8 E/ D& x( Z- q, E# ?% V$ y* n
    6. 1.3G Mar 28 13:15 enwiki-20160601-part6.mdx
    复制代码
    解包5 ~' o( v6 m& w' n/ q. T  c$ m
    1. mdict -x enwiki-20160601-part1.mdx -d temp/  r8 F" }+ B6 a! T, `" t7 e, L
    2. 100%|████████████████████████████████████| 805657/805657 [01:58<00:00, 6793.37rec/s]* ~* h& v9 {0 Z( [) j) [7 V2 _, z
    3. mdict -x enwiki-20160601-part2.mdx -d temp/
      0 J# b4 K' G  `7 S0 z# y; y
    4. 100%|█████████████████████████████████| 1750061/1750061 [02:17<00:00, 12697.84rec/s]
      ; I) o: w% ]" q) }
    5. mdict -x enwiki-20160601-part3.mdx -d temp/
      6 h- B5 M6 L8 m& B4 N
    6. 100%|█████████████████████████████████| 2634700/2634700 [02:23<00:00, 18421.63rec/s]
      . N% T: Z9 j3 e7 e5 P7 F
    7. mdict -x enwiki-20160601-part4.mdx -d temp/
      / k7 A" ~$ v1 {7 `4 H3 w9 H& k3 ]
    8. 100%|█████████████████████████████████| 2848024/2848024 [02:25<00:00, 19566.66rec/s]
      8 s, K: p# ]2 L# S
    9. mdict -x enwiki-20160601-part5.mdx -d temp/
      + j/ ~- O2 |0 W
    10. 100%|█████████████████████████████████| 2681025/2681025 [02:21<00:00, 18995.08rec/s]- K/ t/ G! j3 n  g
    11. mdict -x enwiki-20160601-part6.mdx -d temp/' m+ W5 b* F, m& r* Y4 k
    12. 100%|█████████████████████████████████| 1853213/1853213 [01:31<00:00, 20192.31rec/s]
    复制代码
    请大家观赏解压后 MDX 文件大小
    * l$ z$ z4 v6 n6 {
    1. 8.0G Mar 30 07:18 temp/enwiki-20160601-part1.mdx.txt
      ) @% h0 B+ C. Z7 `
    2. 8.0G Mar 30 07:23 temp/enwiki-20160601-part2.mdx.txt
      8 f6 _1 D# [4 I3 r+ f% K4 X( z
    3. 8.0G Mar 30 07:26 temp/enwiki-20160601-part3.mdx.txt5 o& F# F" X- N# h! ?
    4. 8.0G Mar 30 07:30 temp/enwiki-20160601-part4.mdx.txt
      5 Y4 ?" c+ Y& E3 E
    5. 8.0G Mar 30 07:33 temp/enwiki-20160601-part5.mdx.txt; ^! G2 [; M: J8 h* a6 i  c# l
    6. 5.1G Mar 30 07:38 temp/enwiki-20160601-part6.mdx.txt
    复制代码
    总共 45G,够大了
    8 f2 g! y! m  [% e8 o词条数目总计 805657 + 1750061 + 2634700 + 2848024 + 2681025 + 1853213 = 12572680
    0 J, p$ X& I* N. c% A: M9 s( M# m4 g, g' K' m+ ?: r
    重点来了:重新打包,将这些打包到一起,形成一个 MDX 文件
    4 b" H( {  \# d2 Z
    ) D$ P* m! x2 n) F+ |) n- }; }# |) n8 E1 Y" V) u/ R& j
    1. mdict --title enwiki-20160601-part1.mdx.title.txt --description enwiki-20160601-part1.mdx.description.html  -a enwiki-20160601-part1.mdx.txt -a enwiki-20160601-part2.mdx.txt -a enwiki-20160601-part3.mdx.txt -a enwiki-20160601-part4.mdx.txt -a enwiki-20160601-part5.mdx.txt -a enwiki-20160601-part6.mdx.txt enwiki.mdx
      + U# ]# x9 J! ~* D9 s
    2. Scan "enwiki-20160601-part1.mdx.txt": 805657+ i0 i0 w2 e$ r% T. n% [+ t
    3. Scan "enwiki-20160601-part2.mdx.txt": 1750061
      ) k- C/ j) U! @5 D( ]7 \
    4. Scan "enwiki-20160601-part3.mdx.txt": 2634700
      * b4 t  _  I; F' p
    5. Scan "enwiki-20160601-part4.mdx.txt": 2848024  X+ w; x( D6 k( }$ y$ X* y
    6. Scan "enwiki-20160601-part5.mdx.txt": 2681025
      " x+ u" |/ I, B' C6 j% }) h0 P
    7. Scan "enwiki-20160601-part6.mdx.txt": 1853214% x5 @5 B+ k/ f1 i$ B) L
    8. 6 G; L5 N5 X3 W: g
    9. Pack to "enwiki.mdx"
      : i/ s) y& t" `9 g" L4 q
    10. 100%|██████████████████████████████████| 12572681/12572681 [42:57<00:00, 4878.07rec/s]
    复制代码

    $ u9 u5 p" ^# y( O5 w打包过程:2 U5 [4 ]& r/ h% w& [4 ^
    1.  准备开始
    ; ~1 P6 n$ V! R, q+ W( |  c+ {9 ?. q' S8 r4 R

    + s1 f; g2 s% ~9 g4 o2. 扫描词条,内存开始上升/ D0 y3 j) m: u: Z
    # U$ m/ A2 t, y9 q" N5 ]. J
    6 H& `# ]& \; N2 u9 q

    5 i$ g' o5 E) t: s3. 内存很高了
    3 T& k1 C0 [' H& q( u; O& V
      C  ^3 O; ]4 z5 @" \  q  i4 v# G! y9 `
    $ @& w# {- c& m* V7 X
    4. 危机边缘+ ]. J% a( w/ f

    9 n4 V7 K& X, B0 a  J: n2 M6 e3 g" X2 T' w5 C1 D
    5. 扫描终于结束,差点崩溃,开始打包. N7 z" F0 F7 E/ d- u% u, C

    2 b# {* V& b" E7 T2 s7 u
    , O0 X6 Y9 i/ y7 K5 p* o; U. G6 T! G9 D. E) b
    6. 内存开始下降
    # |! o' V& K5 n6 V7 Z# E1 S% v
    + Z. N9 b- g0 w2 S2 k( s+ k1 u3 Z! d3 S
    ' k/ W, T9 C/ H- M) v
    7. 打包继续,内存脱离危险区
    : E) l* D7 d. g& }: O: H4 D; B* R
    ; P. b. @1 P* d% ^
    . @) ~" ?( D# x2 ^* C% i" q  d) }: h8. 全部结束
    6 K- @  d; `. u. ~+ I# [$ J- d5 s1 P; D" j/ b+ |1 U9 `& a

    + h8 y( z- p7 X4 `9 X( c, b- D最终结果5 W7 c3 x& S* d, t  r7 t/ r; v+ J
    1. 157M Mar 30 06:59 enwiki.mdd) M- O  X- \5 Z0 Z# j( w4 p
    2. 13G Mar 30 09:30 enwiki.mdx
    复制代码
    " ^8 {, E) ~6 H+ n( b$ Z/ o/ h

    ; ?, {  Q  G6 W& `, j# k* D! _& D发现 part6 MDX 词条数量多了一个,不知道为什么,可能 TXT 格式有错误,顺便吐槽发现的错误+ H( e9 b$ B, S- W4 B: x# E' B5 _% G  R3 U
    1. <link rel='stylesheet' type='text/css' href='wiki.css' />> <a href="entry://Quotatio0 M7 ?! L  n2 D) ~. |( N3 ^4 C
    2. n mark">Quotation mark</a> {{R from symbol}}      两个 >> ,估计还有其他错误
    复制代码
    . J$ F% d* F! s0 [5 |# a
    查询测试,"007: Casino Royale"* b7 J; e3 Q, M
    1. mdict -q "007: Casino Royale" enwiki.mdx
      ' h2 m9 C4 P; K
    2. <link rel='stylesheet' type='text/css' href='wiki.css' />> <a href="entry://Casino Royale (2006 film)">Casino Royale (2006 film)</a>
    复制代码

    6 j, t+ o5 z: q1 H5 {, s) [5 j做了一天,累,休息去了。0 W" v: b; J1 o9 z
    / e  o9 E# ~' Y

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?免费注册

    x

    评分

    1

    查看全部评分

    本帖被以下淘专辑推荐:

  • TA的每日心情
    擦汗
    2024-2-8 08:54
  • 签到天数: 902 天

    [LV.10]以坛为家III

    发表于 2019-3-30 16:48:40 | 显示全部楼层
    厉害。这得多大的意志力呀。MANY THANKS
  • TA的每日心情
    开心
    2021-1-14 12:30
  • 签到天数: 450 天

    [LV.9]以坛为家II

    发表于 2019-3-30 18:32:54 | 显示全部楼层
    你这是想证明什么?
  • TA的每日心情

    2023-7-4 23:24
  • 签到天数: 390 天

    [LV.9]以坛为家II

    发表于 2019-3-31 02:18:39 | 显示全部楼层
    编译这种文件还是至少16GB,最好32GB内存,分一部分做ramdisk来跑比较省心
  • TA的每日心情

    2020-8-15 10:40
  • 签到天数: 146 天

    [LV.7]常住居民III

     楼主| 发表于 2019-3-31 05:51:15 | 显示全部楼层
    thresh 发表于 2019-3-31 02:18" }; E" z- H7 F+ C5 v( q) c
    编译这种文件还是至少16GB,最好32GB内存,分一部分做ramdisk来跑比较省心
    % r+ ]7 Z' v$ ~$ u% m( C, Q
    说的对,16G为佳,32G更好. P4 o7 f( W& E4 Q8 H
    但对大多数坛友来说,16G内存的机器已经很少,32G的难见。从16G开始,已经属于专业级 PC
      p7 G  |& {+ H( c7 y" g: n, b  m5 `0 s
    一个问题,可以从软件或硬件两个方面解决。针对的时代不同,解决方案就不同,无法说那个好,那个坏,只能是适合。比如 mpeg 解码,386/486时代,是需要硬件解码器的。现在的视频播放,还是区分硬解码,软解码的
      ^( z- f# K" U' O5 L) V2 f. \( q9 m3 Z: S9 I0 S: `
    我这个测试挑的都是极端情况,极端过了,日常也就不会有问题。只是为普通人考虑,毕竟做一个词典费时费力,多人协作,增加效率。9 u8 G3 ]. D7 V5 X3 M! Q
  • TA的每日心情
    郁闷
    2018-5-17 09:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-3-31 12:09:15 | 显示全部楼层
    大字典考耐力与电脑。庆祝论坛又多一个mdx制作者。

    该用户从未签到

    发表于 2019-3-31 12:40:13 | 显示全部楼层
    thanks a lot ....
  • TA的每日心情

    2023-7-4 23:24
  • 签到天数: 390 天

    [LV.9]以坛为家II

    发表于 2019-4-1 22:02:52 | 显示全部楼层
    zzzz_sleep 发表于 2019-3-31 05:519 [6 @4 ~; q* U/ n: k4 }# w0 X
    说的对,16G为佳,32G更好
    4 R' ]3 s/ _9 ~2 O& ~% d7 A但对大多数坛友来说,16G内存的机器已经很少,32G的难见。从16G开始,已经属于 ...

    6 C- U4 G+ R, x) F7 n' k6 b5 [7 [- E最近内存贵而已,前两年8G DDR3 一根200的白菜价还是有不少屯了货的。身边的电脑现在基本都是16G的,8G都是家用货了。工作不够用
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-19 11:50 , Processed in 0.052131 second(s), 10 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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