掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1732|回复: 8

[讨论] 挑战巨大词典 ②

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

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

    [LV.7]常住居民III

    发表于 2019-3-30 16:14:29 | 显示全部楼层 |阅读模式
    本帖最后由 zzzz_sleep 于 2019-3-30 16:14 编辑 / g# p' M6 c3 P8 T# O" J

    ! |3 U& C: S; P0 V8 |9 n这次目标:
    8 B, k% |6 D/ E( K$ T
    1. 2.4G Mar 28 14:51 enwiki-20160601-part1.mdx
      + Q( ^" i5 f8 X: K# h0 O7 t
    2. 2.3G Mar 28 14:30 enwiki-20160601-part2.mdx% S! @4 D  b. t0 t: x8 a6 n
    3. 2.2G Mar 28 14:41 enwiki-20160601-part3.mdx
      : H  A& N7 E; R1 \
    4. 2.1G Mar 28 14:32 enwiki-20160601-part4.mdx
      6 G$ X9 \3 E# j+ n: O4 M
    5. 2.0G Mar 28 14:02 enwiki-20160601-part5.mdx. @7 h- s7 \) A$ x; V3 h( g5 L: K
    6. 1.3G Mar 28 13:15 enwiki-20160601-part6.mdx$ _$ ~7 v* e, O# f6 M
    7. 157M Mar 28 13:13 enwiki-20160601-part5.mdd, \5 v9 ^( w5 [
    8. 157M Mar 28 11:25 enwiki-20160601-part6.mdd
    复制代码
    6 个 MDX 文件,2个 MDD 文件- p6 s4 S3 `" I
    电脑基本硬件:
    4 q+ ^4 `( G/ ~; C  K
    1. Intel Core i5-5300U @ 4x 2.295GHz
      - ]* A2 ~+ K, S+ x1 [' [- }
    2. 8G Ram
      / V' M4 ?4 ^: Q( U# w/ b8 Z
    3. SSD HD
    复制代码
    先来简单的, MDD 文件% c, S( Y5 a3 V- m6 n* C+ Y
    1. 163979226 Mar 28 13:13 enwiki-20160601-part5.mdd
      1 O+ H- ]& E8 P5 P2 Q0 i! ^' r) G
    2. 163979226 Mar 28 11:25 enwiki-20160601-part6.mdd
    复制代码
    解包到用一目录下
    % E; B  d4 v, O: G) D* H9 ?  \0 p
    1. mdict -x enwiki-20160601-part5.mdd -d mdd/- @, E3 J( t; E4 a. @
    2. 100%|█████████████████████████████████████| 352768/352768 [37:10<00:00, 158.18rec/s]
      7 Y5 p$ b6 L3 O# R
    3. mdict -x enwiki-20160601-part6.mdd  -d  mdd/) j9 C1 [( C  i+ p
    4. 100%|█████████████████████████████████████| 352768/352768 [36:40<00:00, 160.34rec/s]
    复制代码
    9 ^8 D2 }8 z9 o8 N/ k8 P- g5 J+ g

    6 d) M5 z: E+ H# x* { 两个MDD文件大小一样,条目数一样,什么问题?- ~" C8 J1 {1 w8 T8 i; a
    估计 part5.mdx 和 part6.mdx 都需要 mdd 文件,但两个 mdx 都太大了,无法合并在一起,只能分成两个,mdd 文件也只能同样的复制一份* _3 O  P: [+ [5 l6 Q' ~$ ?) i4 t

    ' Y  N  |, U# f+ q8 B重新打包资源文件( y0 S9 v/ e7 K1 h- n2 g" g
    1. mdict -c temp/enwiki.mdd mdd/# d' _: M9 F$ S
    2. Scan "mdd/": 352768
      5 h, ^/ Z" W( C  i
    3. Pack to "temp/enwiki.mdd"
      * {4 O: G: @2 j9 c3 s
    4. 100%|█████████████████████████████████████| 352768/352768 [29:58<00:00, 196.12rec/s]
    复制代码
    1. ls -lh temp/enwiki.mdd; I9 x, R8 [6 C" M6 Y* `2 ?
    2. 157M Mar 30 06:59 enwiki.mdd
    复制代码
    无压力,主要看 MDX 文件
    9 H: o: X7 G/ {3 l! [
    1. 2.4G Mar 28 14:51 enwiki-20160601-part1.mdx
      0 U9 t. m% |# V' }. K# C
    2. 2.3G Mar 28 14:30 enwiki-20160601-part2.mdx
      % M2 R, |4 Q5 E. m9 u# D- h# n+ k+ H
    3. 2.2G Mar 28 14:41 enwiki-20160601-part3.mdx
      - C- U. O" `1 R" ?
    4. 2.1G Mar 28 14:32 enwiki-20160601-part4.mdx
      6 v6 P; V/ G9 L. Z$ Z2 d
    5. 2.0G Mar 28 14:02 enwiki-20160601-part5.mdx+ E7 {! m$ n9 j; `) ^' m
    6. 1.3G Mar 28 13:15 enwiki-20160601-part6.mdx
    复制代码
    解包
    7 j) t- T1 M+ m
    1. mdict -x enwiki-20160601-part1.mdx -d temp/4 c' l( Z% o  I$ d
    2. 100%|████████████████████████████████████| 805657/805657 [01:58<00:00, 6793.37rec/s]0 y- `5 z1 B1 r7 J# w& _
    3. mdict -x enwiki-20160601-part2.mdx -d temp/
      + d; `) F7 W, G5 r
    4. 100%|█████████████████████████████████| 1750061/1750061 [02:17<00:00, 12697.84rec/s]8 \5 b3 n' z  V' K
    5. mdict -x enwiki-20160601-part3.mdx -d temp/
      8 k5 F" ?& s! N  J0 m( h+ e
    6. 100%|█████████████████████████████████| 2634700/2634700 [02:23<00:00, 18421.63rec/s]  i6 v2 }' T5 I" X3 J4 g" z
    7. mdict -x enwiki-20160601-part4.mdx -d temp/0 [, ~3 x% r; ]7 ^" |6 G
    8. 100%|█████████████████████████████████| 2848024/2848024 [02:25<00:00, 19566.66rec/s]7 t$ b# N; }  u
    9. mdict -x enwiki-20160601-part5.mdx -d temp/3 f  t5 ?, a' f5 ^
    10. 100%|█████████████████████████████████| 2681025/2681025 [02:21<00:00, 18995.08rec/s]
      9 U/ V/ V# p2 L
    11. mdict -x enwiki-20160601-part6.mdx -d temp/. A' C( C5 H( ]% D7 ]6 h0 {
    12. 100%|█████████████████████████████████| 1853213/1853213 [01:31<00:00, 20192.31rec/s]
    复制代码
    请大家观赏解压后 MDX 文件大小# P2 G' z& ^, ^1 W9 T1 e8 T
    1. 8.0G Mar 30 07:18 temp/enwiki-20160601-part1.mdx.txt! F! h1 T6 o6 z8 |+ i3 q
    2. 8.0G Mar 30 07:23 temp/enwiki-20160601-part2.mdx.txt
      ; {! Z4 U" o, ]0 E, z4 U3 I3 v
    3. 8.0G Mar 30 07:26 temp/enwiki-20160601-part3.mdx.txt) x  O4 G$ w0 q5 I% X  z* x, w
    4. 8.0G Mar 30 07:30 temp/enwiki-20160601-part4.mdx.txt1 e9 V0 u, m7 t% Z4 a2 @) k3 U+ R
    5. 8.0G Mar 30 07:33 temp/enwiki-20160601-part5.mdx.txt  E; T+ `/ z/ `5 ]1 g% Q' M' c3 b
    6. 5.1G Mar 30 07:38 temp/enwiki-20160601-part6.mdx.txt
    复制代码
    总共 45G,够大了% D0 d1 y$ Y/ O: E" E
    词条数目总计 805657 + 1750061 + 2634700 + 2848024 + 2681025 + 1853213 = 12572680 4 ^. p% p3 x* [3 B8 d* t, X
    * X- b6 l4 R. Z! n, C
    重点来了:重新打包,将这些打包到一起,形成一个 MDX 文件1 j( X1 P2 ~& {2 K

    $ o5 L+ m) Y1 X3 X- A$ o+ |0 F/ d
    ) V4 `, f' B# z' S! ?1 Y: `+ B
    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.mdx2 ^& Y/ z* d; u; y" _
    2. Scan "enwiki-20160601-part1.mdx.txt": 805657' E1 ?9 Q" j. `2 H
    3. Scan "enwiki-20160601-part2.mdx.txt": 1750061. `/ v" I5 n7 s
    4. Scan "enwiki-20160601-part3.mdx.txt": 2634700; p' S) c) j' j0 _
    5. Scan "enwiki-20160601-part4.mdx.txt": 28480246 S. m0 z) t! f8 J: r: ^) Y# R: c
    6. Scan "enwiki-20160601-part5.mdx.txt": 2681025
      ! m1 v; x! T7 H+ b! V
    7. Scan "enwiki-20160601-part6.mdx.txt": 1853214  {1 {, p+ E2 G3 m
    8. - T8 |4 m5 l- ?  b
    9. Pack to "enwiki.mdx": ^, z* O4 h% g- ]/ N
    10. 100%|██████████████████████████████████| 12572681/12572681 [42:57<00:00, 4878.07rec/s]
    复制代码

    ; C$ b) o; f  y( L& g. X9 f打包过程:
    2 n+ o+ M6 f/ d' ]& F1.  准备开始
    5 V% X( x( s$ V' r! b+ {/ k$ G, D5 z# `  ?1 x# S5 F  v' ]
    ! A$ [7 h: C* g* S3 u
    2. 扫描词条,内存开始上升! w! d/ v' i5 @- g) u# A4 ~
    ( U/ Y3 U: d6 S9 E( B

    1 l# Q( I" a7 O0 g6 q. N+ a3 `" i# c
    3. 内存很高了
    ' c! \, O8 G8 L% b8 w+ O$ S' r. R+ m& p$ z

    9 ^& R) m' N& x3 K+ {  M* E) U/ G4 O/ b
    4. 危机边缘
    5 J$ ?0 _) n8 t+ g; ]! U' p) }; B$ v$ ?. Q" t/ N

    + a: H) R; M+ q8 e1 @, Y3 O5. 扫描终于结束,差点崩溃,开始打包7 R9 s) [6 L, Z1 F- D" ~( S

    + {; K% v% B( J" ?- q6 d# q) K+ M

    4 [7 _+ b% T$ `6. 内存开始下降  \8 K  |) o, C5 z0 ~# `
    6 ~2 R6 C8 P% Q0 p+ }, W

    ( S/ N8 N  Z7 w/ p" m; W4 [, o
    2 W; n" u: p( m9 h7. 打包继续,内存脱离危险区( y- D# t5 Y2 x% D0 x4 r' A+ m0 Y
    2 x# U2 C! X4 ?7 \
    5 p+ A1 G; M. c' X. _0 S, x( R
    8. 全部结束: v* w) n3 q! T  S  T" Y
    0 t1 `: A- F% x. X1 n
    3 n& c6 C- H$ m
    最终结果* Y" d$ z2 E, n9 @& A
    1. 157M Mar 30 06:59 enwiki.mdd, s" U! A7 T7 h
    2. 13G Mar 30 09:30 enwiki.mdx
    复制代码
    0 @; J( t7 U5 T; J

    6 p3 R: H6 Q) p) s1 V% p发现 part6 MDX 词条数量多了一个,不知道为什么,可能 TXT 格式有错误,顺便吐槽发现的错误  K- q; m! c! |! ~
    1. <link rel='stylesheet' type='text/css' href='wiki.css' />> <a href="entry://Quotatio5 ]% F, l' `9 v. ]2 v# _
    2. n mark">Quotation mark</a> {{R from symbol}}      两个 >> ,估计还有其他错误
    复制代码

    2 s5 k5 |2 |6 g( P查询测试,"007: Casino Royale"
    8 X5 f8 t0 K0 n2 x, }
    1. mdict -q "007: Casino Royale" enwiki.mdx3 }7 @9 f. d; E8 N( v+ @$ }
    2. <link rel='stylesheet' type='text/css' href='wiki.css' />> <a href="entry://Casino Royale (2006 film)">Casino Royale (2006 film)</a>
    复制代码

    1 l5 \% T! L- S3 G  @! k& R做了一天,累,休息去了。+ Z# k- @: x$ ~; N7 ~  L6 B+ k

    . A( {! k" ]: d* y6 T2 N

    本帖子中包含更多资源

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

    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
    * T, U1 K% D- C) Q3 I) }, N编译这种文件还是至少16GB,最好32GB内存,分一部分做ramdisk来跑比较省心

    ' u* u4 u) L3 c" W6 `说的对,16G为佳,32G更好
    + p7 C: C4 T6 ^1 P7 R# _但对大多数坛友来说,16G内存的机器已经很少,32G的难见。从16G开始,已经属于专业级 PC7 e" v- z+ E8 x1 s+ I; X' S( \
    ( Z0 R0 p9 y+ e' [. }7 v
    一个问题,可以从软件或硬件两个方面解决。针对的时代不同,解决方案就不同,无法说那个好,那个坏,只能是适合。比如 mpeg 解码,386/486时代,是需要硬件解码器的。现在的视频播放,还是区分硬解码,软解码的+ z. V3 m5 g. t4 i

    : {+ C3 M( l0 J$ R: R& P我这个测试挑的都是极端情况,极端过了,日常也就不会有问题。只是为普通人考虑,毕竟做一个词典费时费力,多人协作,增加效率。
    6 L) l; d: v9 N+ F1 I: d
  • 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
    ' S4 o6 `: x) k( y0 Q% n- ^; k9 q- U说的对,16G为佳,32G更好+ |# \9 H  L) f0 s9 N+ D# N/ K0 j
    但对大多数坛友来说,16G内存的机器已经很少,32G的难见。从16G开始,已经属于 ...

    4 ?% y- U- x9 l0 p. j: W& ~$ X) {最近内存贵而已,前两年8G DDR3 一根200的白菜价还是有不少屯了货的。身边的电脑现在基本都是16G的,8G都是家用货了。工作不够用
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-6-7 11:07 , Processed in 0.048500 second(s), 10 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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