Skip to content

Commit 47ab367

Browse files
authored
optimize processing/parsing (especially for string input) (#62)
* move fast reading from tokenizer to processed input stream * add more fast read bypass (tag name, attribute name/values) * add custom logic for the string input case * misc cleanup
1 parent d5570ad commit 47ab367

8 files changed

Lines changed: 582 additions & 298 deletions

File tree

src/main/java/ch/digitalfondue/jfiveparse/Attributes.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ Set<String> keySet() {
7070

7171
private void ensureMap() {
7272
if (attributes == null) {
73-
attributes = new LinkedHashMap<>();
73+
attributes = new LinkedHashMap<>(8);
7474
}
7575
}
7676

src/main/java/ch/digitalfondue/jfiveparse/Characters.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,21 @@ final class Characters {
2222

2323
static final char NULL = 0x0000;
2424
static final char EXCLAMATION_MARK = 0x0021;
25+
/** & */
2526
static final char AMPERSAND = 0x0026;
27+
/** < */
2628
static final char LESSTHAN_SIGN = 0x003C;
29+
/** > */
2730
static final char GREATERTHAN_SIGN = 0x003E;
2831
static final char SOLIDUS = 0x002F;
2932
static final char QUESTION_MARK = 0x003F;
3033

3134
static final int EOF = -1;
3235

3336
static final char TAB = 0x0009;
37+
/** \r */
3438
static final char CR = 0x000D;
39+
/** \n */
3540
static final char LF = 0x000A;
3641
static final char FF = 0x000C;
3742
static final char SPACE = 0x0020;

src/main/java/ch/digitalfondue/jfiveparse/EntitiesPrefix.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import java.io.IOException;
2020
import java.util.ArrayList;
2121
import java.util.List;
22-
import java.util.Map;
2322
import java.util.TreeMap;
2423
import java.util.zip.GZIPInputStream;
2524

0 commit comments

Comments
 (0)