• Noel Grandin's avatar
    tdf#120837 File saving at least 5 times slower · 319c57d2
    Noel Grandin yazdı
    The problem here is that we never actually hit the maExportGraphics
    cache in SvXMLGraphicHelper, even though we are passing the same image
    down repeatedly.
    
    There are two bugs here:
    
    (1) BitmapEx::operator== does not return true if we instantiate 2
    Graphic objects from the same XGraphic, so change it to use the more
    expensive operator==. To mitigate the cost, move the expensive checks to
    the bottom of the method.
    
    (2) in order to use an object in std::unordered_map, the object must
    implement an equality function and a hash function. If two objects are
    equal THEY MUST have the same hash value. Using the Impl* as the hash
    value does not satisfy that condition, so rather use the checksum, which
    does.
    
    After these fixes, the save time drops to less than a second.
    
    Also make the checksum method look more like the operator== method,
    and add a checksum calculation method for SVG data that more accurately
    reflects the underlying SVG data.
    
    Change-Id: I4ca0c7bee60b2efa6fe42301e582c7b278022b46
    Reviewed-on: https://gerrit.libreoffice.org/72615
    Tested-by: Jenkins
    Reviewed-by: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
    319c57d2
Adı
Son kayıt (commit)
Son güncelleme
..
android Loading commit data...
backendtest Loading commit data...
headless Loading commit data...
inc Loading commit data...
ios Loading commit data...
null Loading commit data...
opengl Loading commit data...
osx Loading commit data...
qa Loading commit data...
qt5 Loading commit data...
quartz Loading commit data...
source Loading commit data...
uiconfig Loading commit data...
unx Loading commit data...
win Loading commit data...
workben Loading commit data...
AllLangMoTarget_vcl.mk Loading commit data...
CppunitTest_vcl_apitests.mk Loading commit data...
CppunitTest_vcl_app_test.mk Loading commit data...
CppunitTest_vcl_backend_test.mk Loading commit data...
CppunitTest_vcl_bitmap_render_test.mk Loading commit data...
CppunitTest_vcl_bitmap_test.mk Loading commit data...
CppunitTest_vcl_bitmapprocessor_test.mk Loading commit data...
CppunitTest_vcl_blocklistparser_test.mk Loading commit data...
CppunitTest_vcl_complextext.mk Loading commit data...
CppunitTest_vcl_dialogs_test.mk Loading commit data...
CppunitTest_vcl_errorhandler.mk Loading commit data...
CppunitTest_vcl_filters_test.mk Loading commit data...
CppunitTest_vcl_font.mk Loading commit data...
CppunitTest_vcl_fontcharmap.mk Loading commit data...
CppunitTest_vcl_fontfeature.mk Loading commit data...
CppunitTest_vcl_fontmetric.mk Loading commit data...
CppunitTest_vcl_gen.mk Loading commit data...
CppunitTest_vcl_graphic_test.mk Loading commit data...
CppunitTest_vcl_jpeg_read_write_test.mk Loading commit data...
CppunitTest_vcl_lifecycle.mk Loading commit data...
CppunitTest_vcl_mnemonic.mk Loading commit data...
CppunitTest_vcl_outdev.mk Loading commit data...
CppunitTest_vcl_pdfexport.mk Loading commit data...
CppunitTest_vcl_png_test.mk Loading commit data...
CppunitTest_vcl_svm_test.mk Loading commit data...
CppunitTest_vcl_timer.mk Loading commit data...
CppunitTest_vcl_widget_definition_reader_test.mk Loading commit data...
CustomTarget_gtk3_kde5_moc.mk Loading commit data...
CustomTarget_kde5_moc.mk Loading commit data...
CustomTarget_nativecalc.mk Loading commit data...
CustomTarget_nativecore.mk Loading commit data...
CustomTarget_nativedraw.mk Loading commit data...
CustomTarget_nativemath.mk Loading commit data...
CustomTarget_nativewriter.mk Loading commit data...
CustomTarget_qt5_moc.mk Loading commit data...
Executable_602fuzzer.mk Loading commit data...
Executable_bmpfuzzer.mk Loading commit data...
Executable_cgmfuzzer.mk Loading commit data...
Executable_diffuzzer.mk Loading commit data...
Executable_docxfuzzer.mk Loading commit data...
Executable_dxffuzzer.mk Loading commit data...
Executable_epsfuzzer.mk Loading commit data...
Executable_fftester.mk Loading commit data...
Executable_fodpfuzzer.mk Loading commit data...
Executable_fodsfuzzer.mk Loading commit data...
Executable_fodtfuzzer.mk Loading commit data...
Executable_giffuzzer.mk Loading commit data...
Executable_htmlfuzzer.mk Loading commit data...
Executable_hwpfuzzer.mk Loading commit data...
Executable_icontest.mk Loading commit data...
Executable_jpgfuzzer.mk Loading commit data...
Executable_lo_kde5filepicker.mk Loading commit data...
Executable_lwpfuzzer.mk Loading commit data...
Executable_metfuzzer.mk Loading commit data...
Executable_mmlfuzzer.mk Loading commit data...
Executable_mtfdemo.mk Loading commit data...
Executable_mtpfuzzer.mk Loading commit data...
Executable_olefuzzer.mk Loading commit data...
Executable_outdevgrind.mk Loading commit data...
Executable_pcdfuzzer.mk Loading commit data...
Executable_pctfuzzer.mk Loading commit data...
Executable_pcxfuzzer.mk Loading commit data...
Executable_pngfuzzer.mk Loading commit data...
Executable_ppmfuzzer.mk Loading commit data...
Executable_pptfuzzer.mk Loading commit data...
Executable_pptxfuzzer.mk Loading commit data...
Executable_psdfuzzer.mk Loading commit data...
Executable_qpwfuzzer.mk Loading commit data...
Executable_rasfuzzer.mk Loading commit data...
Executable_rtffuzzer.mk Loading commit data...
Executable_scrtffuzzer.mk Loading commit data...
Executable_sftfuzzer.mk Loading commit data...
Executable_slkfuzzer.mk Loading commit data...
Executable_svdemo.mk Loading commit data...
Executable_svmfuzzer.mk Loading commit data...
Executable_svpclient.mk Loading commit data...
Executable_svptest.mk Loading commit data...
Executable_tgafuzzer.mk Loading commit data...
Executable_tiffuzzer.mk Loading commit data...
Executable_ui-previewer.mk Loading commit data...
Executable_vcldemo.mk Loading commit data...
Executable_visualbackendtest.mk Loading commit data...
Executable_wksfuzzer.mk Loading commit data...
Executable_wmffuzzer.mk Loading commit data...
Executable_ww2fuzzer.mk Loading commit data...
Executable_ww6fuzzer.mk Loading commit data...
Executable_ww8fuzzer.mk Loading commit data...
Executable_xbmfuzzer.mk Loading commit data...
Executable_xid_fullscreen_on_all_monitors.mk Loading commit data...
Executable_xlsfuzzer.mk Loading commit data...
Executable_xlsxfuzzer.mk Loading commit data...
Executable_xpmfuzzer.mk Loading commit data...
Library_desktop_detector.mk Loading commit data...
Library_vcl.mk Loading commit data...
Library_vclplug_gen.mk Loading commit data...
Library_vclplug_gtk.mk Loading commit data...
Library_vclplug_gtk3.mk Loading commit data...
Library_vclplug_gtk3_kde5.mk Loading commit data...
Library_vclplug_kde5.mk Loading commit data...
Library_vclplug_osx.mk Loading commit data...
Library_vclplug_qt5.mk Loading commit data...
Library_vclplug_win.mk Loading commit data...
Makefile Loading commit data...
Module_vcl.mk Loading commit data...
Package_fontunxppds.mk Loading commit data...
Package_fontunxpsprint.mk Loading commit data...
Package_opengl_blacklist.mk Loading commit data...
Package_opengl_shader.mk Loading commit data...
Package_osxres.mk Loading commit data...
Package_theme_definitions.mk Loading commit data...
Package_tipoftheday.mk Loading commit data...
README Loading commit data...
README.GDIMetaFile Loading commit data...
README.lifecycle Loading commit data...
README.scheduler Loading commit data...
README.vars Loading commit data...
StaticLibrary_fuzzer_calc.mk Loading commit data...
StaticLibrary_fuzzer_core.mk Loading commit data...
StaticLibrary_fuzzer_draw.mk Loading commit data...
StaticLibrary_fuzzer_math.mk Loading commit data...
StaticLibrary_fuzzer_writer.mk Loading commit data...
StaticLibrary_fuzzerstubs.mk Loading commit data...
StaticLibrary_glxtest.mk Loading commit data...
StaticLibrary_vclmain.mk Loading commit data...
UIConfig_vcl.mk Loading commit data...
WinResTarget_vcl.mk Loading commit data...
commonfuzzer.mk Loading commit data...
vcl.android.component Loading commit data...
vcl.common.component Loading commit data...
vcl.headless.component Loading commit data...
vcl.ios.component Loading commit data...
vcl.macosx.component Loading commit data...
vcl.unx.component Loading commit data...
vcl.windows.component Loading commit data...