btopt0 : a bit faster and weaker
This commit is contained in:
@@ -553,11 +553,15 @@ size_t ZSTD_compressBlock_opt_generic(ZSTD_CCtx* ctx,
|
|||||||
SET_PRICE(cur, 1/*mlen*/, 0/*offset*/, litlen, price, opt[cur-1].rep);
|
SET_PRICE(cur, 1/*mlen*/, 0/*offset*/, litlen, price, opt[cur-1].rep);
|
||||||
} }
|
} }
|
||||||
|
|
||||||
if (cur == last_pos) break;
|
|
||||||
|
|
||||||
/* last match must start at a minimum distance of 8 from oend */
|
/* last match must start at a minimum distance of 8 from oend */
|
||||||
if (inr > ilimit) continue;
|
if (inr > ilimit) continue;
|
||||||
|
|
||||||
|
if (cur == last_pos) break;
|
||||||
|
|
||||||
|
if ( (optLevel==0) /*static*/
|
||||||
|
&& (opt[cur+1].price <= opt[cur].price) )
|
||||||
|
continue; /* skip unpromising positions; about ~+6% speed, -0.01 ratio */
|
||||||
|
|
||||||
{ U32 const ll0 = (opt[cur].mlen != 1);
|
{ U32 const ll0 = (opt[cur].mlen != 1);
|
||||||
U32 const litlen = (opt[cur].mlen == 1) ? opt[cur].litlen : 0;
|
U32 const litlen = (opt[cur].mlen == 1) ? opt[cur].litlen : 0;
|
||||||
U32 const basePrice = (cur > litlen) ? opt[cur-litlen].price : 0;
|
U32 const basePrice = (cur > litlen) ? opt[cur-litlen].price : 0;
|
||||||
@@ -600,7 +604,7 @@ size_t ZSTD_compressBlock_opt_generic(ZSTD_CCtx* ctx,
|
|||||||
pos, price, opt[pos].price);
|
pos, price, opt[pos].price);
|
||||||
SET_PRICE(pos, mlen, offset, litlen, price, repHistory); /* note : macro modifies last_pos */
|
SET_PRICE(pos, mlen, offset, litlen, price, repHistory); /* note : macro modifies last_pos */
|
||||||
} else {
|
} else {
|
||||||
if (optLevel==0) break; /* gets ~+10% speed for about 0.01 ratio loss */
|
if (optLevel==0) break; /* gets ~+10% speed for about -0.01 ratio loss */
|
||||||
}
|
}
|
||||||
} } } }
|
} } } }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user