Closed Bug 1858068 Opened 1 year ago Closed 1 year ago

Optimize mozilla::unicode::CountGraphemeClusters

Categories

(Core :: Internationalization, defect)

defect

Tracking

()

RESOLVED FIXED
120 Branch
Tracking Status
firefox120 --- fixed

People

(Reporter: m_kato, Assigned: m_kato)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

Although browsertime's perftime uses wikipedia.org, it seems to call mozilla::CounterStyle::GetCounterText. Actually, we load grapheme cluster data per call, so we should cache it.

Since CountGraphemeClusters is called from PressShell::DoFlushLayout when
using counter style. To optimize this, I would like to cache
ICU4XGraphemeClusterSegmenter.

Assignee: nobody → m_kato
Status: NEW → ASSIGNED
Pushed by m_kato@ga2.so-net.ne.jp: https://hg.mozilla.org/integration/autoland/rev/2d9717f5ca10 Cache ICU4XGraphemeClusterSegmenter. r=TYLin

Backed out for causing bustage on Segmenter.cpp

[task 2023-10-13T08:56:37.647Z] 08:56:37     INFO -  /builds/worker/fetches/sccache/sccache /builds/worker/fetches/clang/bin/clang++ -isysroot /builds/worker/fetches/MacOSX13.3.sdk -mmacosx-version-min=10.15 -stdlib=libc++ --target=x86_64-apple-darwin -o Segmenter.o -c  -I/builds/worker/workspace/obj-build/dist/stl_wrappers -fvisibility=hidden -fvisibility-inlines-hidden -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -DNDEBUG=1 -DTRIMMED=1 -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DSTATIC_EXPORTABLE_JS_API -I/builds/worker/checkouts/gecko/intl/lwbrk -I/builds/worker/workspace/obj-build/intl/lwbrk -I/builds/worker/checkouts/gecko/third_party/rust/icu_capi/cpp/include -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -DMOZILLA_CLIENT -include /builds/worker/workspace/obj-build/mozilla-config.h -fno-sized-deallocation -fno-aligned-new -fcrash-diagnostics-dir=/builds/worker/artifacts -fno-exceptions -fPIC -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pipe -gdwarf-4 -Xclang -load -Xclang /builds/worker/workspace/obj-build/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O3 -fno-omit-frame-pointer -funwind-tables -Werror -Wall -Wbitfield-enum-conversion -Wdeprecated-this-capture -Wempty-body -Wformat-type-confusion -Wignored-qualifiers -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtautological-constant-in-range-compare -Wtype-limits -Wno-error=tautological-type-limit-compare -Wunreachable-code -Wunreachable-code-return -Wunused-but-set-parameter -Wno-invalid-offsetof -Wclass-varargs -Wempty-init-stmt -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wno-range-loop-analysis -Wc++2a-compat -Wenum-compare-conditional -Wenum-float-conversion -Wno-error=deprecated -Wno-error=deprecated-anon-enum-enum-conversion -Wno-error=deprecated-enum-enum-conversion -Wno-error=deprecated-pragma -Wno-error=deprecated-this-capture -Wcomma -Wimplicit-fallthrough -Wduplicate-method-arg -Wduplicate-method-match -Wmissing-method-return-type -Wobjc-signed-char-bool -Wsemicolon-before-method-body -Wsuper-class-method-mismatch -Wstring-conversion -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wno-error=atomic-alignment -Wno-error=deprecated-builtins -Wformat -Wformat-security -Wno-psabi -Wthread-safety -Werror=unguarded-availability-new -Wno-error=builtin-macro-redefined -Wno-unknown-warning-option -Wno-mismatched-tags -Wno-pessimizing-move -fno-strict-aliasing -ffp-contract=off  -MD -MP -MF .deps/Segmenter.o.pp   /builds/worker/checkouts/gecko/intl/lwbrk/Segmenter.cpp
[task 2023-10-13T08:56:37.647Z] 08:56:37    ERROR -  /builds/worker/checkouts/gecko/intl/lwbrk/Segmenter.cpp:212:9: error: use of undeclared identifier 'NS_NewRunnableFunction'
[task 2023-10-13T08:56:37.647Z] 08:56:37     INFO -    212 |         NS_NewRunnableFunction("GraphemeClusterBreakIteratorUtf16", [] {
[task 2023-10-13T08:56:37.648Z] 08:56:37     INFO -        |         ^
[task 2023-10-13T08:56:37.648Z] 08:56:37     INFO -  1 error generated.
[task 2023-10-13T08:56:37.648Z] 08:56:37    ERROR -  gmake[4]: *** [/builds/worker/checkouts/gecko/config/rules.mk:688: Segmenter.o] Error 1
[task 2023-10-13T08:56:37.648Z] 08:56:37     INFO -  gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/intl/lwbrk'
[task 2023-10-13T08:56:37.648Z] 08:56:37     INFO -  gmake[4]: Target 'target-objects' not remade because of errors.
[task 2023-10-13T08:56:37.649Z] 08:56:37    ERROR -  gmake[3]: *** [/builds/worker/checkouts/gecko/config/recurse.mk:72: intl/lwbrk/target-objects] Error 2
Flags: needinfo?(m_kato)

I should add nsThreadUtils.h and mutex

Flags: needinfo?(m_kato)
Pushed by m_kato@ga2.so-net.ne.jp: https://hg.mozilla.org/integration/autoland/rev/680609aab8c0 Cache ICU4XGraphemeClusterSegmenter. r=TYLin
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 120 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: