Skip to content

Commit 820bb0b

Browse files
committed
Small execution time optimizations
1 parent c6683a2 commit 820bb0b

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

src/main/runtime/buffer.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,14 +143,20 @@ namespace lsp
143143
uint32_t delta = length - root[*v];
144144
while (delta <= dmax)
145145
{
146-
// Byte matched, compute the length of the sub-sequence
146+
// Byte matched, do some heuristics
147147
const size_t soff = (head + cap - delta) % cap;
148+
if ((len > 1) && (data[(soff + len - 1) % cap] != v[len-1]))
149+
{
150+
delta = length - index[soff];
151+
continue;
152+
}
153+
154+
// Compute the length of the sub-sequence
148155
const size_t lookup = lsp_min(avail, delta);
149156
size_t slen = 1;
150157
for (size_t i=1; i<lookup; ++i)
151158
{
152-
const uint8_t b = data[(soff + i) % cap];
153-
if (v[i] != b)
159+
if (v[i] != data[(soff + i) % cap])
154160
break;
155161
++slen;
156162
}

src/test/utest/resource/compressor.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
using namespace lsp;
3333

34-
#define BUFFER_SIZE 0x100000
34+
#define BUFFER_SIZE 0x40000
3535

3636
UTEST_BEGIN("runtime.resource", compressor)
3737

0 commit comments

Comments
 (0)