mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-10 07:39:16 +00:00
ICU-23061 LowercaseTransliterator improve scalability by avoiding monitor contention
Current implementation synchronizes the whole lowercase operation, so it is always single-threaded Removing the shared state lets us utilize multiple CPU cores
This commit is contained in:
parent
d0e30acc68
commit
12fea708b7
1 changed files with 4 additions and 6 deletions
|
@ -42,8 +42,6 @@ class LowercaseTransliterator extends Transliterator{
|
|||
private final ULocale locale;
|
||||
|
||||
private final UCaseProps csp;
|
||||
private ReplaceableContextIterator iter;
|
||||
private StringBuilder result;
|
||||
private int caseLocale;
|
||||
|
||||
/**
|
||||
|
@ -54,8 +52,6 @@ class LowercaseTransliterator extends Transliterator{
|
|||
super(_ID, null);
|
||||
locale = loc;
|
||||
csp=UCaseProps.INSTANCE;
|
||||
iter=new ReplaceableContextIterator();
|
||||
result = new StringBuilder();
|
||||
caseLocale = UCaseProps.getCaseLocale(locale);
|
||||
}
|
||||
|
||||
|
@ -63,7 +59,7 @@ class LowercaseTransliterator extends Transliterator{
|
|||
* Implements {@link Transliterator#handleTransliterate}.
|
||||
*/
|
||||
@Override
|
||||
protected synchronized void handleTransliterate(Replaceable text,
|
||||
protected void handleTransliterate(Replaceable text,
|
||||
Position offsets, boolean isIncremental) {
|
||||
if(csp==null) {
|
||||
return;
|
||||
|
@ -73,8 +69,10 @@ class LowercaseTransliterator extends Transliterator{
|
|||
return;
|
||||
}
|
||||
|
||||
ReplaceableContextIterator iter = new ReplaceableContextIterator();
|
||||
StringBuilder result = new StringBuilder();
|
||||
|
||||
iter.setText(text);
|
||||
result.setLength(0);
|
||||
int c, delta;
|
||||
|
||||
// Walk through original string
|
||||
|
|
Loading…
Add table
Reference in a new issue