掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 2108|回复: 8

[讨论] 挑战巨大词典 ②

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

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

    [LV.7]常住居民III

    发表于 2019-3-30 16:14:29 | 显示全部楼层 |阅读模式
    本帖最后由 zzzz_sleep 于 2019-3-30 16:14 编辑
    # p8 \* ^0 D5 _! d  ?8 E( U
    4 F3 ^3 K1 T8 {: y/ R这次目标:
    8 O$ o7 O; [3 C  l; t$ g" {/ O
    1. 2.4G Mar 28 14:51 enwiki-20160601-part1.mdx
      2 H1 J/ T/ u' n
    2. 2.3G Mar 28 14:30 enwiki-20160601-part2.mdx7 r( E5 B2 I" k5 B
    3. 2.2G Mar 28 14:41 enwiki-20160601-part3.mdx
      0 [$ W" q& u$ R* l+ i% G) P6 x
    4. 2.1G Mar 28 14:32 enwiki-20160601-part4.mdx
      6 j6 O/ J5 V3 d
    5. 2.0G Mar 28 14:02 enwiki-20160601-part5.mdx
      # t) T3 Z: q5 K0 S1 ?7 p% m4 d- w
    6. 1.3G Mar 28 13:15 enwiki-20160601-part6.mdx7 G! j/ p, u, I3 @
    7. 157M Mar 28 13:13 enwiki-20160601-part5.mdd. H8 R# k! x3 A7 V
    8. 157M Mar 28 11:25 enwiki-20160601-part6.mdd
    复制代码
    6 个 MDX 文件,2个 MDD 文件% n" f& [2 W0 Y  O" M) @
    电脑基本硬件:. n* e9 P4 x+ R$ _
    1. Intel Core i5-5300U @ 4x 2.295GHz  W' x- E8 A9 c
    2. 8G Ram
      ( \4 f! R2 l( c5 S" O
    3. SSD HD
    复制代码
    先来简单的, MDD 文件  J/ A6 {1 z) }2 D( [) ]3 o" f! F
    1. 163979226 Mar 28 13:13 enwiki-20160601-part5.mdd: @* d' N  ]  U5 V3 K
    2. 163979226 Mar 28 11:25 enwiki-20160601-part6.mdd
    复制代码
    解包到用一目录下
    ( J5 S  a1 R3 B8 o) B
    1. mdict -x enwiki-20160601-part5.mdd -d mdd/% t; Z6 o6 F7 \- Y' w: [
    2. 100%|█████████████████████████████████████| 352768/352768 [37:10<00:00, 158.18rec/s]' H% _: W( x3 j. c
    3. mdict -x enwiki-20160601-part6.mdd  -d  mdd/7 G' y% e* W% E7 |; v' J
    4. 100%|█████████████████████████████████████| 352768/352768 [36:40<00:00, 160.34rec/s]
    复制代码
    : w5 u0 Z# u/ b7 [7 u

    / F) y% D, Z( f 两个MDD文件大小一样,条目数一样,什么问题?4 Q: V  z/ j  ^* H% h
    估计 part5.mdx 和 part6.mdx 都需要 mdd 文件,但两个 mdx 都太大了,无法合并在一起,只能分成两个,mdd 文件也只能同样的复制一份
    & q% I2 d: ~; {4 s8 D: y" |9 r! s5 \: [7 _. b% Z
    重新打包资源文件
    . n' @7 x. @; s
    1. mdict -c temp/enwiki.mdd mdd/6 G* J" j+ M" b- @
    2. Scan "mdd/": 352768
      ; W# r6 L3 J9 i4 k
    3. Pack to "temp/enwiki.mdd"
      + f- n( w, u* m) t  h  I) l3 ~
    4. 100%|█████████████████████████████████████| 352768/352768 [29:58<00:00, 196.12rec/s]
    复制代码
    1. ls -lh temp/enwiki.mdd
      $ t3 w' c% w% {6 G0 b7 j
    2. 157M Mar 30 06:59 enwiki.mdd
    复制代码
    无压力,主要看 MDX 文件
    $ Y9 W' r2 a1 o: C
    1. 2.4G Mar 28 14:51 enwiki-20160601-part1.mdx
      & P7 o! b' B. E! I; `# y
    2. 2.3G Mar 28 14:30 enwiki-20160601-part2.mdx% t- h+ S1 c" `
    3. 2.2G Mar 28 14:41 enwiki-20160601-part3.mdx
      7 ?0 e, K+ V2 {. n* W
    4. 2.1G Mar 28 14:32 enwiki-20160601-part4.mdx
      7 z- w0 Q' p  p" l5 R/ E6 S" g
    5. 2.0G Mar 28 14:02 enwiki-20160601-part5.mdx
      ; s7 A- w6 K2 {3 Y/ F
    6. 1.3G Mar 28 13:15 enwiki-20160601-part6.mdx
    复制代码
    解包
    0 L. `% x4 R3 b
    1. mdict -x enwiki-20160601-part1.mdx -d temp/+ C; h( X( h: R3 ^* A9 M$ a
    2. 100%|████████████████████████████████████| 805657/805657 [01:58<00:00, 6793.37rec/s]9 H! T4 u8 w! m$ ?1 f
    3. mdict -x enwiki-20160601-part2.mdx -d temp/
      3 S% j0 ^$ V( \* T$ m( C6 ?  F0 `
    4. 100%|█████████████████████████████████| 1750061/1750061 [02:17<00:00, 12697.84rec/s]/ C+ S2 T$ `9 S0 q$ B
    5. mdict -x enwiki-20160601-part3.mdx -d temp/% G: M  K/ r# U: ^+ E! ]" _) Z
    6. 100%|█████████████████████████████████| 2634700/2634700 [02:23<00:00, 18421.63rec/s]+ V. B& O1 q; I0 u0 Z  @
    7. mdict -x enwiki-20160601-part4.mdx -d temp/
      8 ?4 y$ W! k( R( J" I3 t, L
    8. 100%|█████████████████████████████████| 2848024/2848024 [02:25<00:00, 19566.66rec/s]
      : O8 R# z% f- N# w$ J0 ]( y
    9. mdict -x enwiki-20160601-part5.mdx -d temp/
      + I1 e% i- D" N; Y1 C& v1 n
    10. 100%|█████████████████████████████████| 2681025/2681025 [02:21<00:00, 18995.08rec/s]
      7 A: H8 y9 _# `) ~+ e" T/ P7 A/ u
    11. mdict -x enwiki-20160601-part6.mdx -d temp/
      8 n& H3 l- Q3 m; s( S  T' H
    12. 100%|█████████████████████████████████| 1853213/1853213 [01:31<00:00, 20192.31rec/s]
    复制代码
    请大家观赏解压后 MDX 文件大小% m' h( h' ~: f7 V4 @- N
    1. 8.0G Mar 30 07:18 temp/enwiki-20160601-part1.mdx.txt! c" l, o, m3 R: w3 @( I" F6 Y
    2. 8.0G Mar 30 07:23 temp/enwiki-20160601-part2.mdx.txt
      : Q6 v8 C0 x! f3 c5 y
    3. 8.0G Mar 30 07:26 temp/enwiki-20160601-part3.mdx.txt  [# n2 G" a$ Z! d
    4. 8.0G Mar 30 07:30 temp/enwiki-20160601-part4.mdx.txt
      0 h* [, q. c) p1 L- i. V. N- J8 V
    5. 8.0G Mar 30 07:33 temp/enwiki-20160601-part5.mdx.txt
      ( `, t  ?; l$ T( u! d
    6. 5.1G Mar 30 07:38 temp/enwiki-20160601-part6.mdx.txt
    复制代码
    总共 45G,够大了0 ~9 E$ k" K) y7 m
    词条数目总计 805657 + 1750061 + 2634700 + 2848024 + 2681025 + 1853213 = 12572680 + @: Z; `, K5 C; E  y* L3 i

    0 e% h/ r7 K4 a) p重点来了:重新打包,将这些打包到一起,形成一个 MDX 文件" K. K: S0 M! R  M* G2 r
    & [/ @$ J9 X+ ]6 K3 x( ~
    " ~& H* p, F4 [
    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
      3 D: A) {% Q- w2 ^0 _
    2. Scan "enwiki-20160601-part1.mdx.txt": 805657
      ' g0 B1 v2 j6 c- }; C: @% n: _; u
    3. Scan "enwiki-20160601-part2.mdx.txt": 1750061
      0 G! m) Y) `( V
    4. Scan "enwiki-20160601-part3.mdx.txt": 2634700
        ?: W6 m1 x9 ?6 }3 k
    5. Scan "enwiki-20160601-part4.mdx.txt": 2848024
      8 L; p3 D8 K1 F+ A3 U9 O
    6. Scan "enwiki-20160601-part5.mdx.txt": 2681025
      7 C. i9 }5 f' X7 l
    7. Scan "enwiki-20160601-part6.mdx.txt": 1853214
      # B& u; U$ n4 g+ Y" D  d

    8. & Z# E' J. x2 T* ^* H; W, N
    9. Pack to "enwiki.mdx"7 K$ }; b* r& v$ F
    10. 100%|██████████████████████████████████| 12572681/12572681 [42:57<00:00, 4878.07rec/s]
    复制代码

    - a/ U- v' ~+ B打包过程:
    9 W$ z" O- E$ Y# h; F3 \1.  准备开始
    8 {8 \# b$ I9 f4 O; l- L7 r# Q' |/ r# X7 i7 ~/ k1 ^
    : x4 t  R" m. A. }& \
    2. 扫描词条,内存开始上升: s4 d: U6 e4 N! f/ `
    2 N$ R5 @0 C4 F7 o9 H

    3 s* y0 j+ n# ^& t- J2 c2 Y3 ~1 q' w1 C% P' w0 Y
    3. 内存很高了" c$ }* d+ x: Z0 P
    : h3 |- D( O$ _" p: x0 K" {. s

    7 Q" H7 s7 t: |5 E% P4 b( ~
    + ]6 U/ v( `$ ~5 H" @4. 危机边缘; K/ P* C! A$ P9 _& U$ W" X% a
    3 K4 ]4 s$ N2 J3 w6 X, n+ _

    , P1 G: W/ X8 i% m9 I( U5. 扫描终于结束,差点崩溃,开始打包" ~# H6 Z2 @) R3 b# m  f
    " F; v: |4 t& Q, T) o0 R( \( \

    0 E4 Z" r- n) o7 v7 M% i$ ?5 R: @# Q
    : u) u: j3 m6 h7 R( |6. 内存开始下降6 K! o+ g+ ?7 ~6 m5 e

    4 l& f% R7 z* {5 o( Q  p  `( N9 }- ~' d

    : G1 H/ v& d6 [. Y7. 打包继续,内存脱离危险区. t3 `5 m6 N8 F. N

    ( d" U, w4 ]% y4 J" O
    ' w; R$ |1 g+ O: Q% t3 K# _. D9 O5 w8. 全部结束
    2 F: v' o' y( D; J9 ?+ ]* _. E  a) W+ _

    : S! [  u7 y. s* o2 o最终结果$ X& X/ x& J# T3 m0 G, Y
    1. 157M Mar 30 06:59 enwiki.mdd3 F4 c  m3 @* {* H- z
    2. 13G Mar 30 09:30 enwiki.mdx
    复制代码

    * L' }# u& E9 Y8 f6 G/ l6 t& u5 \2 [/ |; l) H7 m
    发现 part6 MDX 词条数量多了一个,不知道为什么,可能 TXT 格式有错误,顺便吐槽发现的错误
    ; I8 |7 ^! d5 w4 y( o3 _
    1. <link rel='stylesheet' type='text/css' href='wiki.css' />> <a href="entry://Quotatio
      ' M2 l0 q. v# q1 d, Q) ?& v
    2. n mark">Quotation mark</a> {{R from symbol}}      两个 >> ,估计还有其他错误
    复制代码

    / Q9 v! O8 p& {* B; I2 z9 O查询测试,"007: Casino Royale"2 D+ u- f, Y5 j' i4 |
    1. mdict -q "007: Casino Royale" enwiki.mdx5 k, S8 ~+ ]3 L1 P( ]
    2. <link rel='stylesheet' type='text/css' href='wiki.css' />> <a href="entry://Casino Royale (2006 film)">Casino Royale (2006 film)</a>
    复制代码
    9 T2 x! W- A$ y9 E* C
    做了一天,累,休息去了。
    6 P! V) z( i0 v8 e) o+ ~/ N7 u  [# ?" g4 }8 ~0 R+ [+ E

    本帖子中包含更多资源

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

    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
    . `8 t1 P! U4 e2 o# M2 V( _1 F1 K& Y编译这种文件还是至少16GB,最好32GB内存,分一部分做ramdisk来跑比较省心
    ( \' H* _6 w; z5 t. ^
    说的对,16G为佳,32G更好
    # h9 D' U: |/ D5 K2 r" p: ^但对大多数坛友来说,16G内存的机器已经很少,32G的难见。从16G开始,已经属于专业级 PC3 Z) c* S- ~% x7 V

    : A! u9 v4 d; F7 @一个问题,可以从软件或硬件两个方面解决。针对的时代不同,解决方案就不同,无法说那个好,那个坏,只能是适合。比如 mpeg 解码,386/486时代,是需要硬件解码器的。现在的视频播放,还是区分硬解码,软解码的
    $ [8 ?" f2 A+ r) t* m
    / ^  y. Q3 N: k, n; I  }我这个测试挑的都是极端情况,极端过了,日常也就不会有问题。只是为普通人考虑,毕竟做一个词典费时费力,多人协作,增加效率。" B: F! A* ?! k$ P' ^; E
  • 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:51
    " i" x9 E8 {6 O% N, Q说的对,16G为佳,32G更好
    ( f6 A5 \* p  ^2 k1 @, m但对大多数坛友来说,16G内存的机器已经很少,32G的难见。从16G开始,已经属于 ...

    6 M3 k% Z/ g: v  P最近内存贵而已,前两年8G DDR3 一根200的白菜价还是有不少屯了货的。身边的电脑现在基本都是16G的,8G都是家用货了。工作不够用
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-4-28 16:10 , Processed in 0.021539 second(s), 25 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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