From 5590e417d8cfdda2764f67cde74e6e5cd8afa981 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Reimar=20D=C3=B6ffinger?= Date: Sat, 12 Dec 2015 20:13:33 +0100 Subject: [PATCH] Improve v7 format compression. Pack more HTML pages together. They compress much better with more pages, and are rarely used so a few extra milliseconds to read them in is not an issue. --- res/raw/dictionary_info.txt | 2 +- src/com/hughes/android/dictionary/engine/Dictionary.java | 8 ++++---- src/com/hughes/android/dictionary/engine/Index.java | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/res/raw/dictionary_info.txt b/res/raw/dictionary_info.txt index 3d407b0..0a29b7d 100644 --- a/res/raw/dictionary_info.txt +++ b/res/raw/dictionary_info.txt @@ -99,7 +99,7 @@ FR-BG.quickdic http://github.com/rdoeffinger/Dictionary/releases/download/v0.2-d FR-CS.quickdic http://github.com/rdoeffinger/Dictionary/releases/download/v0.2-dictionaries/FR-CS.quickdic.v006.zip 1442254346613 18429081 14030906 2 FR 16874 15501 CS 44564 42900 (FR)Wiktionary-based FR-CS dictionary. FR-EO.quickdic http://github.com/rdoeffinger/Dictionary/releases/download/v0.2-dictionaries/FR-EO.quickdic.v006.zip 1442254492317 24003758 15169444 2 FR 11413 10566 EO 76377 75778 (FR)Wiktionary-based FR-EO dictionary. FR-ES.quickdic http://github.com/rdoeffinger/Dictionary/releases/download/v0.2-dictionaries/FR-ES.quickdic.v006.zip 1442254654705 11757104 7409077 2 FR 25597 23149 ES 37072 34887 (FR)Wiktionary-based FR-ES dictionary. -FR-IS.quickdic http://github.com/rdoeffinger/Dictionary/releases/download/v0.2-dictionaries/FR-IS.quickdic.v007.zip 1449936990900 1598172 1533333 2 FR 8601 7788 IS 22387 21244 (FR)Wiktionary-based FR-IS dictionary. +FR-IS.quickdic http://github.com/rdoeffinger/Dictionary/releases/download/v0.2-dictionaries/FR-IS.quickdic.v007.zip 1449946728255 1306402 1248877 2 FR 8601 7788 IS 22387 21244 (FR)Wiktionary-based FR-IS dictionary. FR-IT.quickdic http://github.com/rdoeffinger/Dictionary/releases/download/v0.2-dictionaries/FR-IT.quickdic.v006.zip 1442254922263 25484806 17114112 2 FR 27542 25759 IT 68481 66981 (FR)Wiktionary-based FR-IT dictionary. FR-JA.quickdic http://github.com/rdoeffinger/Dictionary/releases/download/v0.2-dictionaries/FR-JA.quickdic.v006.zip 1442255093894 16876289 10667997 2 FR 19970 17691 JA 82978 45912 (FR)Wiktionary-based FR-JA dictionary. FR-LA.quickdic http://github.com/rdoeffinger/Dictionary/releases/download/v0.2-dictionaries/FR-LA.quickdic.v006.zip 1442255330498 29529636 20990153 2 FR 7432 6911 LA 85255 84555 (FR)Wiktionary-based FR-LA dictionary. diff --git a/src/com/hughes/android/dictionary/engine/Dictionary.java b/src/com/hughes/android/dictionary/engine/Dictionary.java index cb7d32f..f900bab 100644 --- a/src/com/hughes/android/dictionary/engine/Dictionary.java +++ b/src/com/hughes/android/dictionary/engine/Dictionary.java @@ -83,20 +83,20 @@ public class Dictionary implements RAFSerializable { raf.seek(rafSources.getEndOffset()); pairEntries = CachingList.create( - RAFList.create(raf, new PairEntry.Serializer(this), raf.getFilePointer(), dictFileVersion, dictFileVersion >= 7 ? 64 : 1, dictFileVersion >= 7), + RAFList.create(raf, new PairEntry.Serializer(this), raf.getFilePointer(), dictFileVersion), CACHE_SIZE); textEntries = CachingList.create( RAFList.create(raf, new TextEntry.Serializer(this), raf.getFilePointer(), dictFileVersion), CACHE_SIZE); if (dictFileVersion >= 5) { htmlEntries = CachingList.create( - RAFList.create(raf, new HtmlEntry.Serializer(this), raf.getFilePointer(), dictFileVersion, dictFileVersion >= 7 ? 64 : 1, dictFileVersion >= 7), + RAFList.create(raf, new HtmlEntry.Serializer(this), raf.getFilePointer(), dictFileVersion), CACHE_SIZE); } else { htmlEntries = Collections.emptyList(); } if (dictFileVersion >= 7) { - htmlData = RAFList.create(raf, new HtmlEntry.DataDeserializer(), raf.getFilePointer(), dictFileVersion, 16, true); + htmlData = RAFList.create(raf, new HtmlEntry.DataDeserializer(), raf.getFilePointer(), dictFileVersion); } else { htmlData = null; } @@ -128,7 +128,7 @@ public class Dictionary implements RAFSerializable { System.out.println("html start: " + raf.getFilePointer()); RAFList.write(raf, htmlEntries, new HtmlEntry.Serializer(this), 64, true); assert htmlData == null; - RAFList.write(raf, htmlEntries, new HtmlEntry.DataSerializer(), 16, true); + RAFList.write(raf, htmlEntries, new HtmlEntry.DataSerializer(), 128, true); System.out.println("indices start: " + raf.getFilePointer()); RAFList.write(raf, indices, indexSerializer); System.out.println("end: " + raf.getFilePointer()); diff --git a/src/com/hughes/android/dictionary/engine/Index.java b/src/com/hughes/android/dictionary/engine/Index.java index 139cdd8..bb4b460 100644 --- a/src/com/hughes/android/dictionary/engine/Index.java +++ b/src/com/hughes/android/dictionary/engine/Index.java @@ -136,8 +136,8 @@ public final class Index implements RAFSerializable { mainTokenCount = raf.readInt(); } sortedIndexEntries = CachingList.create( - RAFList.create(raf, indexEntrySerializer, raf.getFilePointer(), dict.dictFileVersion, - dict.dictFileVersion >= 7 ? 16 : 1, dict.dictFileVersion >= 7), CACHE_SIZE); + RAFList.create(raf, indexEntrySerializer, raf.getFilePointer(), + dict.dictFileVersion), CACHE_SIZE); if (dict.dictFileVersion >= 7) { int count = StringUtil.readVarInt(raf); stoplist = new HashSet(count); @@ -165,7 +165,7 @@ public final class Index implements RAFSerializable { if (dict.dictFileVersion >= 2) { raf.writeInt(mainTokenCount); } - RAFList.write(raf, sortedIndexEntries, indexEntrySerializer, 16, true); + RAFList.write(raf, sortedIndexEntries, indexEntrySerializer, 32, true); StringUtil.writeVarInt(raf, stoplist.size()); for (String i : stoplist) { raf.writeUTF(i); -- 2.43.0