Lightroom CC (Classic) Performance - From a Computer Science Point of View

  • 19
  • Idea
  • Updated 6 months ago
  • (Edited)
Like others, I am having a frustrating time with Lightroom editing photos from a performance standpoint.

My workflow typically has me creating a new catalog for a particular photo shoot, importing the (RAW) photos and applying a custom preset on import and then editing the photos one by one in the Develop Module.

After editing a number of photos (say, 10-25) the performance of Lightroom degrades significantly and I have to exit Lightroom and re-start it to continue editing (and continue to do so until I have completed my editing).

I have done significant research into Lightroom performance issues and have tried all of the suggestions and all possible permutations thereof to no avail.  I have also profiled Lightroom with a number of Windows development tools to take a look at it's I/O, threads, memory, etc. and nothing specifically stands out.

I do understand that Lightroom stores it's editing changes (whether via a preset or manually) in a SQLite database and then applies these changes to a photo in 'real-time' to render what you see on the screen.  That leads me to believe that the program is having a difficult time querying the database and applying the changes in 'real-time'... it is almost like there is a 'leak' as one moves from one photo to the next.

Edit: I took a quick look at the Lightroom .lcat file which is actually a SQLite database.  In it, I found 102 tables.  Still looking at the relationships between these tables.

All of the suggestions to add faster disks, larger caches, build previews, etc. are all masking the real culprit which I believe is an internal data structure, database, etc. issue.  My 'evidence' for this is that exiting and re-invoking Lightroom will always provide me great performance until I reach 10-25 photos and then I have to 'rinse and repeat'.

What I would like to know from the Lightroom software development team is whether there is a way for uses to 'peek' inside the program to know what is actually going on from an operating system and computer science perspective (open files, memory allocation, threads, locks, etc.).  I would assume that the Lightroom software development team knows exactly what is going on as the program is likely instrumented.  Knowing what it is that is causing Lightroom to gradually degrade its performance will help users understand how our behavior might need to change when using Lightroom to improve our experience (like perhaps not/not applying presets to hundreds of photos at once rather, do so as you edit one photo at a time).

I do love Photoshop and Lightroom and recommend the products to everyone that ask me for advice but I also believe that Lightroom's performance issues are serious and need to be addressed.

Thank you for your consideration
Photo of Fred I.

Fred I.

  • 23 Posts
  • 10 Reply Likes

Posted 1 year ago

  • 19
Photo of Benjamin Golinvaux

Benjamin Golinvaux

  • 19 Posts
  • 9 Reply Likes
This is a very interesting question !  I am a software developer too and I often wondered how I could try to analytically approach the LR performance problem. I never noticed this progressive degradation of performance that you mention but indeed, sometimes, LR is blazingly fast and I cannot really pinpoint why. I once read that applying some development presets in a different order led to a totally different experience (i.e. always disable expensive camera corrections before using the correction tool...). I really hope that Adobe engineers will accept to shed some light on this (an instrumented flag when LR starts would alllow us all to collect info and maybe try to figure it out).
(Pardon my strange english by I am french speaking)
Photo of Fred I.

Fred I.

  • 23 Posts
  • 10 Reply Likes
I downloaded the latest SQLite tools for Windows (my platform) and am using the sqlite3.exe program to take a look at the underlying Lightroom SQLite database (tables, indexes, etc.) found in the {filename}.lrcat file.  While this will not pinpoint the performance issue, it is illuminating to see the 104 tables that Lightroom uses in its main database.
Photo of Johan Elzenga

Johan Elzenga, Champion

  • 1548 Posts
  • 623 Reply Likes
"I do understand that Lightroom stores it's editing changes (whether via a preset or manually) in a SQLite database and then applies these changes to a photo in 'real-time' to render what you see on the screen. "

No, it uses a slightly different method. Lightroom renders a jpeg preview with the settings. That preview is then presented on the screen. In the develop module this is effectively the same as rendering directly to the screen would be, but if you are in other modules there is no real time rendering. You just see the preview, which could actually be fairly old if the image has not been edited for a while. The previews for these modules are stored in '<catalog name> previews.lrdata' in your catalog folder. The previews used in the develop module are stored in the Camera Raw Cache elsewhere.
Photo of Fred I.

Fred I.

  • 23 Posts
  • 10 Reply Likes
What I meant by 'real-time' rendering is that Lightroom is a parametric editor that applies adjustments to the source image to render what you see on the screen and export as a finished photo.  I do not doubt that  Lightroom creates a .jpg with all of your adjustments to display on the screen but that .jpg is created by taking the 'raw' image and then applying, one-by-one, all of the adjustments you have made to the image.  And I believe each image's adjustments are stored in the .lrcat (SQLite database) file.

Speaking only about the database, if the data in the file becomes fragmented or the underlying B-Tree(s) become unbalanced, I can see how that might cause a performance issue.
(Edited)
Photo of Amit Kumar

Amit Kumar, Senior Computer Scientist

  • 20 Posts
  • 11 Reply Likes
Hi Fred,
Could you please reproduce the performance degradation issue and then post the contents of the System Info dialog?

- Launch Lightroom and reproduce the performance degradation issue.
- Invoke the System Info dialog by selecting 'Help > System Info...' menu command.
- Copy the contents of the System Info dialog and post it here.

Thanks,
Amit
Photo of Fred I.

Fred I.

  • 23 Posts
  • 10 Reply Likes
The only differences I can spot in the 'before' and 'after' files are:

Real memory used by Lightroom: 338.6 MB (2.0%)
Real memory used by Lightroom: 2349.6 MB (14.4%)

Virtual memory used by Lightroom: 267.1 MB
Virtual memory used by Lightroom: 2683.1 MB

GDI objects count: 691
GDI objects count: 1037

USER objects count: 2160
USER objects count: 2392

Process handles count: 1346
Process handles count: 2459

Memory cache size: 0.0MB / 3836.1MB (0.0%)
Memory cache size: 2189.0MB / 3836.1MB (57.1%)

Camera Raw virtual memory: 0MB / 8133MB (0%)
Camera Raw virtual memory: 1195MB / 8133MB (14%)
Photo of Fred I.

Fred I.

  • 23 Posts
  • 10 Reply Likes
The only differences I can spot in the 'before' and 'after' files are:

Real memory used by Lightroom: 338.6 MB (2.0%)
Real memory used by Lightroom: 2349.6 MB (14.4%)

Virtual memory used by Lightroom: 267.1 MB
Virtual memory used by Lightroom: 2683.1 MB

GDI objects count: 691
GDI objects count: 1037

USER objects count: 2160
USER objects count: 2392

Process handles count: 1346
Process handles count: 2459

Memory cache size: 0.0MB / 3836.1MB (0.0%)
Memory cache size: 2189.0MB / 3836.1MB (57.1%)

Camera Raw virtual memory: 0MB / 8133MB (0%)
Camera Raw virtual memory: 1195MB / 8133MB (14%)
Photo of Fred I.

Fred I.

  • 23 Posts
  • 10 Reply Likes
Some additional information about the .lrcat file...

I queried the .lrcat database and found the following table row counts:

I have made 4,241 develop adjustments to the 1,775 photos...

Adobe_libraryImageDevelopHistoryStep   4241
AgLibraryImageSyncedAssetData           3550
Adobe_AdditionalMetadata               1775
Adobe_imageDevelopBeforeSettings       1775
Adobe_imageDevelopSettings             1775
Adobe_imageProperties                   1775
Adobe_images                           1775
AgHarvestedDNGMetadata                 1775
AgHarvestedExifMetadata                 1775
AgHarvestedIptcMetadata                 1775
AgLibraryCollectionImage               1775
AgLibraryCollectionImageChangeCounter   1775
AgLibraryFile                           1775
AgLibraryIPTC                           1775
AgLibraryImageChangeCounter             1775
AgLibraryImportImage                   1775
AgMetadataSearchIndex                   1775
AgSourceColorProfileConstants           1775
Adobe_variablesTable                   59
AgLibraryCollectionContent             30
AgLibraryCollection                     19
AgLibraryCollectionChangeCounter       18
AgLibraryCollectionCoverImage           11
AgSpecialSourceContent                 6
AgLibraryImageXMPUpdater               3
AgInternedExifCameraModel               2
AgInternedExifCameraSN                 2
AgInternedExifLens                     2
AgPhotoPropertySpec                     2
AgInternedIptcCreator                   1
AgInternedIptcLocation                 1
AgLibraryFolder                         1
AgLibraryImport                         1
AgLibraryKeyword                       1
AgLibraryRootFolder                     1
LrMobileSyncChangeCounter               1

With each row looking something like:

32|7102A8B9-A3EF-4966-AA27-152D6D3CA26E|528157098.418938|ae218d89c7cfdfc33f1cac8b7d19547e|1.0|22|Import/[0] Initial Settings (9/26/2017 6:18:18 PM)||s = { AutoGrayscaleMix = true,
AutoLateralCA = 1,
AutoTone = true,
AutoWhiteVersion = 134348800,
Blacks2012 = -999999,
Brightness = -999999,
CameraProfile = "Camera Standard",
Clarity2012 = 5,
ColorNoiseReduction = 25,
Contrast = -999999,
Contrast2012 = -999999,
ConvertToGrayscale = false,
DefringeGreenAmount = 0,
DefringeGreenHueHi = 60,
DefringeGreenHueLo = 40,
DefringePurpleAmount = 0,
DefringePurpleHueHi = 70,
DefringePurpleHueLo = 30,
Exposure = -999999,
Exposure2012 = -999999,
FillLight = -999999,
GrainSize = 25,
HighlightRecovery = -999999,
Highlights2012 = -999999,
LensManualDistortionAmount = 0,
LensProfileEnable = 1,
LensProfileSetup = "LensDefaults",
LuminanceNoiseReductionContrast = 0,
PerspectiveHorizontal = 0,
PerspectiveRotate = 0,
PerspectiveScale = 100,
PerspectiveVertical = 0,
PerspectiveX = 0,
PerspectiveY = 0,
ProcessVersion = "6.7",
RedEyeInfo = {  },
RetouchInfo = {  },
Saturation = 5,
Shadows = -999999,
Shadows2012 = -999999,
SharpenDetail = 25,
SharpenEdgeMasking = 0,
SharpenRadius = 1,
Sharpness = 25,
ToneCurve = { 0,
0,
32,
22,
64,
56,
128,
128,
192,
196,
255,
255 },
ToneCurveBlue = { 0,
0,
255,
255 },
ToneCurveGreen = { 0,
0,
255,
255 },
ToneCurveName = "Medium Contrast",
ToneCurveName2012 = "Medium Contrast",
ToneCurvePV2012 = { 0,
0,
32,
22,
64,
56,
128,
128,
192,
196,
255,
255 },
ToneCurvePV2012Blue = { 0,
0,
255,
255 },
ToneCurvePV2012Green = { 0,
0,
255,
255 },
ToneCurvePV2012Red = { 0,
0,
255,
255 },
ToneCurveRed = { 0,
0,
255,
255 },
UprightCenterMode = 0,
UprightCenterNormX = 0.5,
UprightCenterNormY = 0.5,
UprightFocalLength35mm = 35,
UprightFocalMode = 0,
UprightFourSegmentsCount = 0,
UprightPreview = false,
UprightTransformCount = 6,
UprightVersion = 151388160,
Version = "9.12",
Vibrance = 5,
WhiteBalance = "Auto",
Whites2012 = -999999 }
|
Photo of Joel Weisbrod

Joel Weisbrod

  • 177 Posts
  • 98 Reply Likes
Great idea Fred as to sending system info before and during the slowdown.

I hope Amit and others will look at this although after the initial contact, we have heard nothing from anyone.

My two "System Info" dumps below (Note GPU is Manually disabled): 

1) when Lightroom is first loaded;

2) After minor edits to 35 images; mostly cropping, exposure and highlight adjustments - nothing else done to any images other than the preset upon import. The preset has black clipping, clarity, vibrance, sharpening, noise reduction, and lens correction. My slow down is more than one minute clock time to zoom from "Fit" to "1:1" in Develop Mode. Not quite two minutes to zoom back to "Fit".

1)Lightroom just loaded

Lightroom version: CC 2015.12 [ 1125239 ]
License: Creative Cloud
Operating system: Windows 10
Version: 10.0
Application architecture: x64
System architecture: x64
Logical processor count: 12
Processor speed: 3.3 GHz
Built-in memory: 65446.8 MB
Real memory available to Lightroom: 65446.8 MB
Real memory used by Lightroom: 688.3 MB (1.0%)
Virtual memory used by Lightroom: 833.5 MB
GDI objects count: 734
USER objects count: 2170
Process handles count: 1546
Memory cache size: 229.9MB / 16105.7MB (1.4%)
Maximum thread count used by Camera Raw: 7
Camera Raw SIMD optimization: SSE2,AVX,AVX2
Camera Raw virtual memory: 213MB / 32723MB (0%)
System DPI setting: 96 DPI
Desktop composition enabled: Yes
Displays: 1) 1920x1080, 2) 1920x1080
Input types: Multitouch: No, Integrated touch: No, Integrated pen: Yes, External touch: No, External pen: Yes, Keyboard: No

Graphics Processor Info: 

GeForce GTX TITAN X/PCIe/SSE2

Check OpenGL support: Passed
Vendor: NVIDIA Corporation
Version: 3.3.0 NVIDIA 384.76
Renderer: GeForce GTX TITAN X/PCIe/SSE2
LanguageVersion: 3.30 NVIDIA via Cg compiler

Application folder: C:\Program Files\Adobe\Adobe Lightroom

Library Path: J:\Lightroom Catalogs\20170923 - Amanda and Dean Wedding\20170923 - Amanda and Dean Wedding.lrcat

Settings Folder: C:\Users\joelw\AppData\Roaming\Adobe\Lightroom

Installed Plugins: 

1) AdobeStock
2) Canon Tether Plugin
3) ColorChecker Passport
4) Facebook
5) Flickr
6) Leica Tether Plugin
7) LR/Instagram
8) Nikon Tether Plugin
9) ON1 Photo RAW 2017
10) ON1 Resize 2017

Config.lua flags: 
AgGCCache.mainCacheFactor = 0.1
Develop.AdjustMaximumThreadCount = 0.51
AgNegativeCache.factorOfAddressSpace = 0.01

Adapter #1: Vendor : 10de
Device : 17c2
Subsystem : 29903842
Revision : a1
Video Memory : 12244

Adapter #2: Vendor : 1414
Device : 8c
Subsystem : 0
Revision : 0
Video Memory : 0

AudioDeviceIOBlockSize: 1024
AudioDeviceName: Speakers (Realtek High Definition Audio)
AudioDeviceNumberOfChannels: 2
AudioDeviceSampleRate: 48000

Build: LR5x8
Direct2DEnabled: false
GL_ACCUM_ALPHA_BITS: 16
GL_ACCUM_BLUE_BITS: 16
GL_ACCUM_GREEN_BITS: 16
GL_ACCUM_RED_BITS: 16
GL_ALPHA_BITS: 0
GL_BLUE_BITS: 8
GL_DEPTH_BITS: 24
GL_GREEN_BITS: 8
GL_MAX_3D_TEXTURE_SIZE: 2048
GL_MAX_TEXTURE_SIZE: 16384
GL_MAX_TEXTURE_UNITS: 4
GL_MAX_VIEWPORT_DIMS: 16384,16384
GL_RED_BITS: 8
GL_RENDERER: GeForce GTX TITAN X/PCIe/SSE2
GL_SHADING_LANGUAGE_VERSION: 4.50 NVIDIA
GL_STENCIL_BITS: 8
GL_VENDOR: NVIDIA Corporation
GL_VERSION: 4.5.0 NVIDIA 384.76
GPUDeviceEnabled: false
OGLEnabled: true

GL_EXTENSIONS: GL_AMD_multi_draw_indirect GL_AMD_seamless_cubemap_per_texture GL_AMD_vertex_shader_viewport_index GL_AMD_vertex_shader_layer GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_cl_event GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_conditional_render_inverted GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_ES2_compatibility GL_ARB_ES3_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_2_compatibility GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_fragment_shader_interlock GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gl_spirv GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader_int64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_parallel_shader_compile GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_post_depth_coverage GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_locations GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_ballot GL_ARB_shader_bit_encoding GL_ARB_shader_clock GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shader_viewport_layer_array GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_sparse_buffer GL_ARB_sparse_texture GL_ARB_sparse_texture2 GL_ARB_sparse_texture_clamp GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_filter_minmax GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_polygon_offset_clamp GL_EXT_post_depth_coverage GL_EXT_provoking_vertex GL_EXT_raster_multisample GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shader_image_load_formatted GL_EXT_shader_image_load_store GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_sparse_texture2 GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_filter_minmax GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_window_rectangles GL_EXT_import_sync_object GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KHR_context_flush_control GL_KHR_debug GL_KHR_no_error GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_KTX_buffer_region GL_NV_alpha_to_coverage_dither_control GL_NV_bindless_multi_draw_indirect GL_NV_bindless_multi_draw_indirect_count GL_NV_bindless_texture GL_NV_blend_equation_advanced GL_NV_blend_equation_advanced_coherent GL_NV_blend_square GL_NV_command_list GL_NV_compute_program5 GL_NV_conditional_render GL_NV_conservative_raster GL_NV_conservative_raster_dilate GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_draw_texture GL_NV_draw_vulkan_image GL_NV_ES1_1_compatibility GL_NV_ES3_1_compatibility GL_NV_explicit_multisample GL_NV_fence GL_NV_fill_rectangle GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_coverage_to_color GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_fragment_shader_interlock GL_NV_framebuffer_mixed_samples GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_geometry_shader_passthrough GL_NV_gpu_program4 GL_NV_internalformat_sample_query GL_NV_gpu_program4_1 GL_NV_gpu_program5 GL_NV_gpu_program5_mem_extended GL_NV_gpu_program_fp64 GL_NV_gpu_shader5 GL_NV_half_float GL_NV_light_max_exponent GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_path_rendering_shared_edge GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_sample_locations GL_NV_sample_mask_override_coverage GL_NV_shader_atomic_counters GL_NV_shader_atomic_float GL_NV_shader_atomic_fp16_vector GL_NV_shader_atomic_int64 GL_NV_shader_buffer_load GL_NV_shader_storage_buffer_object GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_uniform_buffer_unified_memory GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NV_viewport_array2 GL_NV_viewport_swizzle GL_NVX_conditional_render GL_NVX_gpu_memory_info GL_NVX_multigpu_info GL_NVX_nvenc_interop GL_NV_shader_thread_group GL_NV_shader_thread_shuffle GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum GL_WIN_swap_hint WGL_EXT_swap_control


2) When experiencing slowdown (More than one minute clock time to zoom from "Fit" to "1:1" in Develop Mode. Not quite two minutes to zoom back to "Fit".
Lightroom version: CC 2015.12 [ 1125239 ]

License: Creative Cloud
Operating system: Windows 10
Version: 10.0
Application architecture: x64
System architecture: x64
Logical processor count: 12
Processor speed: 3.3 GHz
Built-in memory: 65446.8 MB
Real memory available to Lightroom: 65446.8 MB
Real memory used by Lightroom: 2134.9 MB (3.2%)
Virtual memory used by Lightroom: 2455.6 MB
GDI objects count: 858
USER objects count: 2595
Process handles count: 1764
Memory cache size: 1548.8MB / 16105.7MB (9.6%)
Maximum thread count used by Camera Raw: 7
Camera Raw SIMD optimization: SSE2,AVX,AVX2
Camera Raw virtual memory: 946MB / 32723MB (2%)
System DPI setting: 96 DPI
Desktop composition enabled: Yes

Displays: 1) 1920x1080, 2) 1920x1080

Input types: Multitouch: No, Integrated touch: No, Integrated pen: Yes, External touch: No, External pen: Yes, Keyboard: No

Graphics Processor Info: 
GeForce GTX TITAN X/PCIe/SSE2
Check OpenGL support: Passed
Vendor: NVIDIA Corporation
Version: 3.3.0 NVIDIA 384.76
Renderer: GeForce GTX TITAN X/PCIe/SSE2
LanguageVersion: 3.30 NVIDIA via Cg compiler

Application folder: C:\Program Files\Adobe\Adobe Lightroom
Library Path: J:\Lightroom Catalogs\20170923 - Amanda and Dean Wedding\20170923 - Amanda and Dean Wedding.lrcat

Settings Folder: C:\Users\joelw\AppData\Roaming\Adobe\Lightroom

Installed Plugins: 

1) AdobeStock
2) Canon Tether Plugin
3) ColorChecker Passport
4) Facebook
5) Flickr
6) Leica Tether Plugin
7) LR/Instagram
8) Nikon Tether Plugin
9) ON1 Photo RAW 2017
10) ON1 Resize 2017

Config.lua flags: 
AgGCCache.mainCacheFactor = 0.1
Develop.AdjustMaximumThreadCount = 0.51
AgNegativeCache.factorOfAddressSpace = 0.01

Adapter #1: Vendor : 10de
Device : 17c2
Subsystem : 29903842
Revision : a1
Video Memory : 12244

Adapter #2: Vendor : 1414
Device : 8c
Subsystem : 0
Revision : 0
Video Memory : 0

AudioDeviceIOBlockSize: 1024
AudioDeviceName: Speakers (Realtek High Definition Audio)
AudioDeviceNumberOfChannels: 2
AudioDeviceSampleRate: 48000

Build: LR5x8

Direct2DEnabled: false
GL_ACCUM_ALPHA_BITS: 16
GL_ACCUM_BLUE_BITS: 16
GL_ACCUM_GREEN_BITS: 16
GL_ACCUM_RED_BITS: 16
GL_ALPHA_BITS: 0
GL_BLUE_BITS: 8
GL_DEPTH_BITS: 24
GL_GREEN_BITS: 8
GL_MAX_3D_TEXTURE_SIZE: 2048
GL_MAX_TEXTURE_SIZE: 16384
GL_MAX_TEXTURE_UNITS: 4
GL_MAX_VIEWPORT_DIMS: 16384,16384
GL_RED_BITS: 8
GL_RENDERER: GeForce GTX TITAN X/PCIe/SSE2
GL_SHADING_LANGUAGE_VERSION: 4.50 NVIDIA
GL_STENCIL_BITS: 8
GL_VENDOR: NVIDIA Corporation
GL_VERSION: 4.5.0 NVIDIA 384.76
GPUDeviceEnabled: false

OGLEnabled: true

GL_EXTENSIONS: GL_AMD_multi_draw_indirect GL_AMD_seamless_cubemap_per_texture GL_AMD_vertex_shader_viewport_index GL_AMD_vertex_shader_layer GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_cl_event GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_conditional_render_inverted GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_ES2_compatibility GL_ARB_ES3_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_2_compatibility GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_fragment_shader_interlock GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gl_spirv GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader_int64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_parallel_shader_compile GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_post_depth_coverage GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_locations GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_ballot GL_ARB_shader_bit_encoding GL_ARB_shader_clock GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shader_viewport_layer_array GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_sparse_buffer GL_ARB_sparse_texture GL_ARB_sparse_texture2 GL_ARB_sparse_texture_clamp GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_filter_minmax GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_polygon_offset_clamp GL_EXT_post_depth_coverage GL_EXT_provoking_vertex GL_EXT_raster_multisample GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shader_image_load_formatted GL_EXT_shader_image_load_store GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_sparse_texture2 GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_filter_minmax GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_window_rectangles GL_EXT_import_sync_object GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KHR_context_flush_control GL_KHR_debug GL_KHR_no_error GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_KTX_buffer_region GL_NV_alpha_to_coverage_dither_control GL_NV_bindless_multi_draw_indirect GL_NV_bindless_multi_draw_indirect_count GL_NV_bindless_texture GL_NV_blend_equation_advanced GL_NV_blend_equation_advanced_coherent GL_NV_blend_square GL_NV_command_list GL_NV_compute_program5 GL_NV_conditional_render GL_NV_conservative_raster GL_NV_conservative_raster_dilate GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_draw_texture GL_NV_draw_vulkan_image GL_NV_ES1_1_compatibility GL_NV_ES3_1_compatibility GL_NV_explicit_multisample GL_NV_fence GL_NV_fill_rectangle GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_coverage_to_color GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_fragment_shader_interlock GL_NV_framebuffer_mixed_samples GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_geometry_shader_passthrough GL_NV_gpu_program4 GL_NV_internalformat_sample_query GL_NV_gpu_program4_1 GL_NV_gpu_program5 GL_NV_gpu_program5_mem_extended GL_NV_gpu_program_fp64 GL_NV_gpu_shader5 GL_NV_half_float GL_NV_light_max_exponent GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_path_rendering_shared_edge GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_sample_locations GL_NV_sample_mask_override_coverage GL_NV_shader_atomic_counters GL_NV_shader_atomic_float GL_NV_shader_atomic_fp16_vector GL_NV_shader_atomic_int64 GL_NV_shader_buffer_load GL_NV_shader_storage_buffer_object GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_uniform_buffer_unified_memory GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NV_viewport_array2 GL_NV_viewport_swizzle GL_NVX_conditional_render GL_NVX_gpu_memory_info GL_NVX_multigpu_info GL_NVX_nvenc_interop GL_NV_shader_thread_group GL_NV_shader_thread_shuffle GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum GL_WIN_swap_hint WGL_EXT_swap_control
Photo of Joel Weisbrod

Joel Weisbrod

  • 177 Posts
  • 98 Reply Likes
I have finally finished editing the wedding...

Here is some additional information that I hope will be helpful in addressing the issue.

1. When I started this wedding project, I created a brand new catalog and imported 1648 images. On Import, I applied a Metadata preset and Develop Preset. The develop changes were black clipping, vibrance, clarity, sharpening, noise reduction, and lens correction. Also, a few keywords were added during the import.

2. During the process, I added 21 virtual copies. When done with my review, I had about 1000 images that had 3 stars and all of these were then flagged. I filtered the filmstrip to show only three stars and flagged images (this was only 1 folder in the entire catalog). This is the group ready for the second review and editing.

3. My editing used only white balance, exposure, highlights, shadows, a few changes to vibrance and noise reduction, and cropping for almost every image. This catalog has only 20-25 tiny spot corrections, no graduated filters, 6 small brush instances to limit highlights on 6 faces, no red-eye corrections, one photo edited in Photoshop, no collections, and no smart collections. 

4. I needed to exit and restart Lightroom 28 times (this does not include the few times I exited to sleep) to clear up the slowdowns. Cannot even describe the level of frustration or extra time and cost this has forced upon me.

5. In the last two hours of editing, I had the Task manager loaded on my second monitor and did not use the second monitor option of LR. I watched and tracked CPU usage during the normal LR performance and during ht slowdown and was surprised to see no difference in CPU load (this was with the GPU disabled). The CPU load never reached 20% regardless of how slow LR performed or how long I had to wait. For example, when I turn on the crop tool, it takes 30-40 seconds for the tool to appear on the image and almost 15 seconds more for the aspect tool to appear. During this wait, the CPU bounces around in the single digits to low teens. So, it does not seem like this is totally processor related. Then I had an idea...

6. I found and installed a utility to monitor GPU performance and decided as I neared the end of the project to try a test. I loaded LR and turned on the GPU and then restarted LR. Number "6)" below is the System Info readout at that moment. Next, I began to finish my editing process. Again, all I was changing was exposure, black & white clipping, highlights, shadows, and crop. During this time, the CPU percentage on the task manager appeared the same as in the prior Non-GPU test. The GPU used a MAX of 1118Mb of memory, MAX of 29% GPU Load, and MAX of 16% Memory Controller Load. The crop performance and the sliders behaved seemed better than without the GPU.

7. Eventually, the slowdown began. Slower and slower until it became unusable. Number "7)" below is the System Info readout during this slowdown. It is (I think) important to note that the CPU in the task manager still never reached 20% and the MAX numbers in the GPU Utility never increased above the MAX from before the slowdown. Curious I think!

8. What is seemingly more curious (from my point of view as a developer for more than 30 years) is that simply exiting the LR software and restarting it totally solves the problem for a short time. As this seems not to be related to processor load, memory load, or GPU load & memory, it must be something internal to the LR kernel.

I hope someone is actually looking at this, because like Fred I., this is killing us out here!!!!! If LR would just work all day with the performance it has when it first loads, I would be thrilled! Yes, like many others, I would like more speed everywhere especially since other graphical products are "super speedy" on my high-end PC with this top-of-the-line Graphics Card, but this slowdown is making it impossible for me to work efficiently.

6) With GPU - Just as LR was Loaded

Lightroom version: CC 2015.12 [ 1125239 ]
License: Creative Cloud
Operating system: Windows 10
Version: 10.0
Application architecture: x64
System architecture: x64
Logical processor count: 12
Processor speed: 3.3 GHz
Built-in memory: 65446.8 MB
Real memory available to Lightroom: 65446.8 MB
Real memory used by Lightroom: 853.3 MB (1.3%)
Virtual memory used by Lightroom: 1049.0 MB
GDI objects count: 718
USER objects count: 2032
Process handles count: 1512
Memory cache size: 344.8MB / 16105.7MB (2.1%)
Maximum thread count used by Camera Raw: 7
Camera Raw SIMD optimization: SSE2,AVX,AVX2
Camera Raw virtual memory: 317MB / 32723MB (0%)
System DPI setting: 96 DPI
Desktop composition enabled: Yes

Displays: 1) 1920x1080, 2) 1920x1080
Input types: Multitouch: No, Integrated touch: No, Integrated pen: Yes, External touch: No, External pen: Yes, Keyboard: No

Graphics Processor Info: 

GeForce GTX TITAN X/PCIe/SSE2
Check OpenGL support: Passed
Vendor: NVIDIA Corporation
Version: 3.3.0 NVIDIA 384.76
Renderer: GeForce GTX TITAN X/PCIe/SSE2
LanguageVersion: 3.30 NVIDIA via Cg compiler


Application folder: C:\Program Files\Adobe\Adobe Lightroom
Library Path: J:\Lightroom Catalogs\20170923 - Amanda and Dean Wedding\20170923 - Amanda and Dean Wedding.lrcat

Settings Folder: C:\Users\joelw\AppData\Roaming\Adobe\Lightroom

Installed Plugins: 

1) AdobeStock
2) Canon Tether Plugin
3) ColorChecker Passport
4) Facebook
5) Flickr
6) Leica Tether Plugin
7) LR/Instagram
8) Nikon Tether Plugin
9) ON1 Photo RAW 2017
10) ON1 Resize 2017

Config.lua flags: 
AgGCCache.mainCacheFactor = 0.1
Develop.AdjustMaximumThreadCount = 0.51
AgNegativeCache.factorOfAddressSpace = 0.01

Adapter #1: Vendor : 10de
Device : 17c2
Subsystem : 29903842
Revision : a1
Video Memory : 12244

Adapter #2: Vendor : 1414
Device : 8c
Subsystem : 0
Revision : 0
Video Memory : 0

AudioDeviceIOBlockSize: 1024
AudioDeviceName: Speakers (Realtek High Definition Audio)
AudioDeviceNumberOfChannels: 2
AudioDeviceSampleRate: 48000
Build: LR5x8

Direct2DEnabled: false

GL_ACCUM_ALPHA_BITS: 16
GL_ACCUM_BLUE_BITS: 16
GL_ACCUM_GREEN_BITS: 16
GL_ACCUM_RED_BITS: 16
GL_ALPHA_BITS: 0
GL_BLUE_BITS: 8
GL_DEPTH_BITS: 24
GL_GREEN_BITS: 8
GL_MAX_3D_TEXTURE_SIZE: 2048
GL_MAX_TEXTURE_SIZE: 16384
GL_MAX_TEXTURE_UNITS: 4
GL_MAX_VIEWPORT_DIMS: 16384,16384
GL_RED_BITS: 8
GL_RENDERER: GeForce GTX TITAN X/PCIe/SSE2
GL_SHADING_LANGUAGE_VERSION: 4.50 NVIDIA
GL_STENCIL_BITS: 8
GL_VENDOR: NVIDIA Corporation
GL_VERSION: 4.5.0 NVIDIA 384.76

GPUDeviceEnabled: false

OGLEnabled: true

GL_EXTENSIONS: GL_AMD_multi_draw_indirect GL_AMD_seamless_cubemap_per_texture GL_AMD_vertex_shader_viewport_index GL_AMD_vertex_shader_layer GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_cl_event GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_conditional_render_inverted GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_ES2_compatibility GL_ARB_ES3_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_2_compatibility GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_fragment_shader_interlock GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gl_spirv GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader_int64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_parallel_shader_compile GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_post_depth_coverage GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_locations GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_ballot GL_ARB_shader_bit_encoding GL_ARB_shader_clock GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shader_viewport_layer_array GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_sparse_buffer GL_ARB_sparse_texture GL_ARB_sparse_texture2 GL_ARB_sparse_texture_clamp GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_filter_minmax GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_polygon_offset_clamp GL_EXT_post_depth_coverage GL_EXT_provoking_vertex GL_EXT_raster_multisample GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shader_image_load_formatted GL_EXT_shader_image_load_store GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_sparse_texture2 GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_filter_minmax GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_window_rectangles GL_EXT_import_sync_object GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KHR_context_flush_control GL_KHR_debug GL_KHR_no_error GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_KTX_buffer_region GL_NV_alpha_to_coverage_dither_control GL_NV_bindless_multi_draw_indirect GL_NV_bindless_multi_draw_indirect_count GL_NV_bindless_texture GL_NV_blend_equation_advanced GL_NV_blend_equation_advanced_coherent GL_NV_blend_square GL_NV_command_list GL_NV_compute_program5 GL_NV_conditional_render GL_NV_conservative_raster GL_NV_conservative_raster_dilate GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_draw_texture GL_NV_draw_vulkan_image GL_NV_ES1_1_compatibility GL_NV_ES3_1_compatibility GL_NV_explicit_multisample GL_NV_fence GL_NV_fill_rectangle GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_coverage_to_color GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_fragment_shader_interlock GL_NV_framebuffer_mixed_samples GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_geometry_shader_passthrough GL_NV_gpu_program4 GL_NV_internalformat_sample_query GL_NV_gpu_program4_1 GL_NV_gpu_program5 GL_NV_gpu_program5_mem_extended GL_NV_gpu_program_fp64 GL_NV_gpu_shader5 GL_NV_half_float GL_NV_light_max_exponent GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_path_rendering_shared_edge GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_sample_locations GL_NV_sample_mask_override_coverage GL_NV_shader_atomic_counters GL_NV_shader_atomic_float GL_NV_shader_atomic_fp16_vector GL_NV_shader_atomic_int64 GL_NV_shader_buffer_load GL_NV_shader_storage_buffer_object GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_uniform_buffer_unified_memory GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NV_viewport_array2 GL_NV_viewport_swizzle GL_NVX_conditional_render GL_NVX_gpu_memory_info GL_NVX_multigpu_info GL_NVX_nvenc_interop GL_NV_shader_thread_group GL_NV_shader_thread_shuffle GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum GL_WIN_swap_hint WGL_EXT_swap_control


7)
Lightroom version: CC 2015.12 [ 1125239 ]
License: Creative Cloud
Operating system: Windows 10
Version: 10.0
Application architecture: x64
System architecture: x64
Logical processor count: 12
Processor speed: 3.3 GHz
Built-in memory: 65446.8 MB
Real memory available to Lightroom: 65446.8 MB
Real memory used by Lightroom: 2394.4 MB (3.6%)
Virtual memory used by Lightroom: 2861.0 MB
GDI objects count: 752
USER objects count: 2124
Process handles count: 1746
Memory cache size: 929.2MB / 16105.7MB (5.8%)
Maximum thread count used by Camera Raw: 7
Camera Raw SIMD optimization: SSE2,AVX,AVX2
Camera Raw virtual memory: 953MB / 32723MB (2%)
System DPI setting: 96 DPI
Desktop composition enabled: Yes

Displays: 1) 1920x1080, 2) 1920x1080

Input types: Multitouch: No, Integrated touch: No, Integrated pen: Yes, External touch: No, External pen: Yes, Keyboard: No

Graphics Processor Info: 
GeForce GTX TITAN X/PCIe/SSE2
Check OpenGL support: Passed
Vendor: NVIDIA Corporation
Version: 3.3.0 NVIDIA 384.76
Renderer: GeForce GTX TITAN X/PCIe/SSE2
LanguageVersion: 3.30 NVIDIA via Cg compiler

Application folder: C:\Program Files\Adobe\Adobe Lightroom
Library Path: J:\Lightroom Catalogs\20170923 - Amanda and Dean Wedding\20170923 - Amanda and Dean Wedding.lrcat
Settings Folder: C:\Users\joelw\AppData\Roaming\Adobe\Lightroom

Installed Plugins: 

1) AdobeStock
2) Canon Tether Plugin
3) ColorChecker Passport
4) Facebook
5) Flickr
6) Leica Tether Plugin
7) LR/Instagram
8) Nikon Tether Plugin
9) ON1 Photo RAW 2017
10) ON1 Resize 2017

Config.lua flags: 
AgGCCache.mainCacheFactor = 0.1
Develop.AdjustMaximumThreadCount = 0.51
AgNegativeCache.factorOfAddressSpace = 0.01

Adapter #1: Vendor : 10de
Device : 17c2
Subsystem : 29903842
Revision : a1
Video Memory : 12244

Adapter #2: Vendor : 1414
Device : 8c
Subsystem : 0
Revision : 0
Video Memory : 0

AudioDeviceIOBlockSize: 1024
AudioDeviceName: Speakers (Realtek High Definition Audio)
AudioDeviceNumberOfChannels: 2
AudioDeviceSampleRate: 48000
Build: LR5x8

Direct2DEnabled: false

GL_ACCUM_ALPHA_BITS: 16
GL_ACCUM_BLUE_BITS: 16
GL_ACCUM_GREEN_BITS: 16
GL_ACCUM_RED_BITS: 16
GL_ALPHA_BITS: 0
GL_BLUE_BITS: 8
GL_DEPTH_BITS: 24
GL_GREEN_BITS: 8
GL_MAX_3D_TEXTURE_SIZE: 2048
GL_MAX_TEXTURE_SIZE: 16384
GL_MAX_TEXTURE_UNITS: 4
GL_MAX_VIEWPORT_DIMS: 16384,16384
GL_RED_BITS: 8
GL_RENDERER: GeForce GTX TITAN X/PCIe/SSE2
GL_SHADING_LANGUAGE_VERSION: 4.50 NVIDIA
GL_STENCIL_BITS: 8
GL_VENDOR: NVIDIA Corporation
GL_VERSION: 4.5.0 NVIDIA 384.76

GPUDeviceEnabled: false
OGLEnabled: true

GL_EXTENSIONS: GL_AMD_multi_draw_indirect GL_AMD_seamless_cubemap_per_texture GL_AMD_vertex_shader_viewport_index GL_AMD_vertex_shader_layer GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_cl_event GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_conditional_render_inverted GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_ES2_compatibility GL_ARB_ES3_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_2_compatibility GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_fragment_shader_interlock GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gl_spirv GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader_int64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_parallel_shader_compile GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_post_depth_coverage GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_locations GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_ballot GL_ARB_shader_bit_encoding GL_ARB_shader_clock GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shader_viewport_layer_array GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_sparse_buffer GL_ARB_sparse_texture GL_ARB_sparse_texture2 GL_ARB_sparse_texture_clamp GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_filter_minmax GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_polygon_offset_clamp GL_EXT_post_depth_coverage GL_EXT_provoking_vertex GL_EXT_raster_multisample GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shader_image_load_formatted GL_EXT_shader_image_load_store GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_sparse_texture2 GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_filter_minmax GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_window_rectangles GL_EXT_import_sync_object GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KHR_context_flush_control GL_KHR_debug GL_KHR_no_error GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_KTX_buffer_region GL_NV_alpha_to_coverage_dither_control GL_NV_bindless_multi_draw_indirect GL_NV_bindless_multi_draw_indirect_count GL_NV_bindless_texture GL_NV_blend_equation_advanced GL_NV_blend_equation_advanced_coherent GL_NV_blend_square GL_NV_command_list GL_NV_compute_program5 GL_NV_conditional_render GL_NV_conservative_raster GL_NV_conservative_raster_dilate GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_draw_texture GL_NV_draw_vulkan_image GL_NV_ES1_1_compatibility GL_NV_ES3_1_compatibility GL_NV_explicit_multisample GL_NV_fence GL_NV_fill_rectangle GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_coverage_to_color GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_fragment_shader_interlock GL_NV_framebuffer_mixed_samples GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_geometry_shader_passthrough GL_NV_gpu_program4 GL_NV_internalformat_sample_query GL_NV_gpu_program4_1 GL_NV_gpu_program5 GL_NV_gpu_program5_mem_extended GL_NV_gpu_program_fp64 GL_NV_gpu_shader5 GL_NV_half_float GL_NV_light_max_exponent GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_path_rendering_shared_edge GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_sample_locations GL_NV_sample_mask_override_coverage GL_NV_shader_atomic_counters GL_NV_shader_atomic_float GL_NV_shader_atomic_fp16_vector GL_NV_shader_atomic_int64 GL_NV_shader_buffer_load GL_NV_shader_storage_buffer_object GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_uniform_buffer_unified_memory GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NV_viewport_array2 GL_NV_viewport_swizzle GL_NVX_conditional_render GL_NVX_gpu_memory_info GL_NVX_multigpu_info GL_NVX_nvenc_interop GL_NV_shader_thread_group GL_NV_shader_thread_shuffle GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum GL_WIN_swap_hint WGL_EXT_swap_control
Photo of Fred I.

Fred I.

  • 23 Posts
  • 10 Reply Likes

Hi Amit,

I will post the system info dialog contents within a day's time once I get back to my studio.  Thank you for being willing to take a look.


Fred

Photo of James Dong

James Dong

  • 14 Posts
  • 4 Reply Likes
I am a senior developer too and I have been thinking the possible problems with this performance issue since about a year ago when I started to suffer. I am sure everyone here had tried pretty much the same approaches and tests to root out configurations or settings, or hardware related problems. And from our end as an application user no matter what we tried we always and still end up with the same bad performance. So I am thinking the issue is with the application and somehow triggered by some system related reason. And here is what I observed and suspected.

1. it may be related to my 27inch 4K monitor as the performance is better if use my second monitor which is 1980X1080. The same with if I am using dual screen mode. Navigating the images on the second screen is always fast. Also I almost don't have performance issue with my 15inch Macbook Pro. 

2 The performance is better if I convert to dng file instead of always using the Nikon raw file.

3. it seems to be much faster if I set the default viewing size to be a third or a quarter vs. 'fit' which is close to a half of the image size.

It seems all make sense as more calculations needed for displaying high resolution and large sized images plus the involvements of the video card. In the mean time, I am thinking there might be a design flaw somewhere as every move needs a lot of calculation and reloading of the image (I do see high CPU and memory load all the time), which the LR development team may have known already.
Photo of Fred I.

Fred I.

  • 23 Posts
  • 10 Reply Likes
Yes, it definitely appears to be an application issue that is exposed in as yet, unknown circumstances.  I completely understand that Abobe cannot possibly test for all permutations of hardware, plugins, etc. And I further understand that in creating an application that can simultaneously be released on a number of hardware/operating system platforms, choices had to be made with respect to optimizing it for any particular platform.  And I further understand that hauling along many years of legacy code and backwards compatibility makes changing the code base difficult at best.

However... another tool company recently overhauled their product and as painful as it must have been, the new product does perform well - just food for thought.

What I really would like though, is simply a way to instrument (or be able to turn on existing instrumentation) to re-create the performance issue and definitively point to the cause.  Again, all of the great advice from Victoria and others are outstanding but they are covering up a fundamental issue with the underlying program.  Please let your knowledgeable users help you identify where the program is having some issues... we can be a force multiplier for you.  We are invested in the success of your program... let us help.
Photo of Victoria Bampton - Lightroom Queen

Victoria Bampton - Lightroom Queen, Champion

  • 4265 Posts
  • 1546 Reply Likes
> all of the great advice from Victoria and others are outstanding but they are covering up a fundamental issue with the underlying program

The team are aware and working on a whole bunch of performance issues. Some are easier to identify than others, but there's no illusion that my and other's suggestions are a long term solution, just a stop gap to keep things rolling for now.
Photo of Fred I.

Fred I.

  • 23 Posts
  • 10 Reply Likes
Hi Victoria,

First, thank you for all of your work and dedication to the Lightroom community.  I have greatly benefited from your books, articles, advice over the years.

I understand the 'stop  gap' advice and in many cases, I believe it is helping many users.  However, there is a growing community of users who also happen to be engineers, computer scientists, etc. who have been/are responsible for developing systems and software far more complex than Lightroom who are puzzled as to why fixing the performance issues are so difficult.

At the macro level, the development module (for instance) is about browsing {n} photos and rendering a 20-50MB  (if RAW) file to a screen and then manipulating the pixels real-time as the users adjusts white balance, tone, etc.  How doing so causes the program in some cases (after 20-40 photos) to come to a crawl is bewildering.

What we would love to see is the browsing/rendering speed of PhotoMechanic with the functionality of Lightroom/Camera RAW.  I realize that PM is only rendering an embedded .jpg in the case of RAW but it is the speed I am speaking about.

In the meantime, some insight into why the performance issues are occurring would help us tailor our workflow to mitigate the issues until Lightroom can be refactored.  Your explanation of parametric editing is a good one at the macro level - what some of would like now is insight into how those operations are executed within the program itself - how they are stored, how they are applied to the underlying bits, how they are cached, etc.  For instance, given 2,000 photos, is it best to apply a preset at import or to do it one by one as you are editing a photo due to the way that the photo's edits are stored/applied in the program itself.

Additionally, it would be nice to have some additional instrumentation, debugging, etc. to be able to help the Lightroom team improve their product.  The System Info dialog box is not sufficient to diagnose the cause and the dialog itself has an error in creating process handles in Windows.

Again, thank you for your tireless work.

Regards
Photo of Victoria Bampton - Lightroom Queen

Victoria Bampton - Lightroom Queen, Champion

  • 4265 Posts
  • 1546 Reply Likes
I doubt they'll share quite that level of detail on how it's all done under the hood (and the goal would be to solve the issues so you don't need to know that anyway), but help in tracking down the cause of the gradual slow down would be appreciated, I'm sure. You've already got Amit (one of the senior LR engineers) on the thread, and I've flagged it for one of the product managers.
Photo of Joel Weisbrod

Joel Weisbrod

  • 183 Posts
  • 103 Reply Likes
I am a retired senior developer as well. I have two nearly identical monitors, both LG 27" and 1920x1080. When the GPU is enabled, my secondary monitor displays much quicker than the primary. When the GPU is disabled, both are fast at first and gradually slow to a crawl after 25-35 images being edited.

Since there is so much discussion regarding limiting the number of processor cores for LR use, I think the problem may be related to the age of the base coding for Lightroom which is not able to take advantage of this improved multi-code multi-threading.

All of us guessing seems wrong. As I said before, Adobe is not a small bunch of people in a garage somewhere writing code. This huge company needs to invest in the time to fix the product and tell the marketing guys that always seem to want more features to slow down and wait until what we have works for all the professionals that are paying every month!

Frankly, I think I am entitled to a huge refund as I have been suffering with this issue for more than a full year with no real hope of future improvement due to Adobe's total silence.
Photo of Fred I.

Fred I.

  • 23 Posts
  • 10 Reply Likes
Seems like several of us are computer scientists and/or have equivalent experience.  I am very willing to help Adobe identify where the program is having performance issues as I am sure others would as well.
Photo of Simon Chen

Simon Chen, Principal Computer Scientist

  • 1490 Posts
  • 471 Reply Likes
Hi Joel, I notice that you still have some of the config.lua keys in place shown in your system info dialog.

It is time to delete the config.lua that you have experimented with. With Lr 2015.12/6.12, the config.lua file that you have should no longer be necessary.

Here is some info on the location of the file: 

On Mac: ~/Library/Application Support/Adobe/Lightroom/config.lua 

On Windows: C:\Documents and Settings\your account name\Application Data\Adobe\Lightroom\config.lua
(Edited)
Photo of Joel Weisbrod

Joel Weisbrod

  • 183 Posts
  • 103 Reply Likes
Hi Simon,

Thanks, I deleted it. When can we expect some relief as LR is currently unbearable. I have a few non-time-sensitive projects I simply cannot work on because the slowdowns are so bad...
Photo of Simon Chen

Simon Chen, Principal Computer Scientist

  • 1490 Posts
  • 471 Reply Likes
We are working on it as Victoria said.
Photo of James Dong

James Dong

  • 14 Posts
  • 4 Reply Likes
First, I'll say I could not agree more.

Second, I'd like to mention whenever I enabled GPU, LR just crashed.
Photo of drobtitan

drobtitan

  • 29 Posts
  • 7 Reply Likes

I worked 25 years designing systems and working with databases was the norm for me.  I haven't done it again in four years.

I decided to look at the .lcat file to get an idea of the content.  I found 102 tables but none related to any other!, this is contrary to what should be in a well designed relational database.  Even I found tables without primary key!

I imagine that when Lightroom was born they handled all the information in 102 individual files scattered, years later they decided to manage the information in a database but sadly they only converted the files into tables and did not design a true relational database.

Relational database managers are very powerfull, I used to handle 90000 pdf files (embedded as BLOB data in a table) in a plain laptop with less resources than my actual 27” Imac with 24 GB RAM, crawling just to update the keywords of 4000 pictures and creating several Smart Collections.

If someone finds a table with a foreing key column, tell me which one it is, I can't find it.  I never used SQLite before.
Photo of Fred I.

Fred I.

  • 23 Posts
  • 10 Reply Likes
Hi,  I took a look at the tables as well recently and what I took away from them was that the LR team has done a lot of work to normalize the tables.  It is interesting to take a look at how individual image adjustments are stored in the underlying database.  Since the database seems to keep each adjustment (or set of adjustments in a single 'visit' to an image) as a new row, it would be possible to step back {n} 'visits' and take a 'snapshot' on any one of those 'visits', even after the fact.  From an algorithmic standpoint, it is very clever.  That said, I do hope that when you 'visit' an image - even if you have visited it 100 times and made adjustments - that the last 'record' of your adjustments for that particular image is rapidly retrieved and applied and that all 100 do not need to be separately applied in order.  That likely is not possible if one makes brush-type of adjustments... those likely are applied one-by-one... but for all others that apply to the image as a whole, that should be what happens.
Photo of Joel Weisbrod

Joel Weisbrod

  • 183 Posts
  • 103 Reply Likes
Okay, I admit it - I am totally confused. All of us begged Adobe to fix the speed issues with Lightroom and as I recall, they told us they were working on it. Well, I just upgraded to the new LR Classic and it is still so slow that it is not usable (see attached video).

I guess I am just not too bright!! 

Below the video, you will find my System Info from the new LR Classic.


Lightroom Classic version: 7.0 [ 1140024 ]
License: Creative Cloud
Operating system: Windows 10
Version: 10.0
Application architecture: x64
System architecture: x64
Logical processor count: 12
Processor speed: 3.3 GHz
Built-in memory: 65446.8 MB
Real memory available to Lightroom: 65446.8 MB
Real memory used by Lightroom: 4226.7 MB (6.4%)
Virtual memory used by Lightroom: 4913.1 MB
GDI objects count: 814
USER objects count: 2877
Process handles count: 2570
Memory cache size: 1806.7MB
Maximum thread count used by Camera Raw: 5
Camera Raw SIMD optimization: SSE2,AVX,AVX2
Camera Raw virtual memory: 2440MB / 32723MB (7%)
Camera Raw real memory: 2855MB / 65446MB (4%)
System DPI setting: 96 DPI
Desktop composition enabled: Yes
Displays: 1) 1920x1080, 2) 1920x1080
Input types: Multitouch: No, Integrated touch: No, Integrated pen: Yes, External touch: No, External pen: Yes, Keyboard: No

Graphics Processor Info: 
DirectX: NVIDIA GeForce GTX TITAN X



Application folder: C:\Program Files\Adobe\Adobe Lightroom Classic CC
Library Path: J:\Lightroom Catalogs\20170725 - Maine & Newport\20170725 - Maine & Newport-2.lrcat
Settings Folder: C:\Users\joelw\AppData\Roaming\Adobe\Lightroom

Installed Plugins: 
1) AdobeStock
2) Canon Tether Plugin
3) ColorChecker Passport
4) Facebook
5) Flickr
6) LR/Instagram
7) Nikon Tether Plugin
8) ON1 Photo RAW 2017
9) ON1 Resize 2017

Config.lua flags: None

Adapter #1: Vendor : 10de
Device : 17c2
Subsystem : 29903842
Revision : a1
Video Memory : 12244
Adapter #2: Vendor : 1414
Device : 8c
Subsystem : 0
Revision : 0
Video Memory : 0
AudioDeviceIOBlockSize: 1024
AudioDeviceName: Speakers (Realtek High Definition Audio)
AudioDeviceNumberOfChannels: 2
AudioDeviceSampleRate: 48000
Build: 10.0x7
Direct2DEnabled: false
GL_ACCUM_ALPHA_BITS: 16
GL_ACCUM_BLUE_BITS: 16
GL_ACCUM_GREEN_BITS: 16
GL_ACCUM_RED_BITS: 16
GL_ALPHA_BITS: 0
GL_BLUE_BITS: 8
GL_DEPTH_BITS: 24
GL_GREEN_BITS: 8
GL_MAX_3D_TEXTURE_SIZE: 2048
GL_MAX_TEXTURE_SIZE: 16384
GL_MAX_TEXTURE_UNITS: 4
GL_MAX_VIEWPORT_DIMS: 16384,16384
GL_RED_BITS: 8
GL_RENDERER: GeForce GTX TITAN X/PCIe/SSE2
GL_SHADING_LANGUAGE_VERSION: 4.50 NVIDIA
GL_STENCIL_BITS: 8
GL_VENDOR: NVIDIA Corporation
GL_VERSION: 4.5.0 NVIDIA 384.76
GPUDeviceEnabled: false
OGLEnabled: true
GL_EXTENSIONS: GL_AMD_multi_draw_indirect GL_AMD_seamless_cubemap_per_texture GL_AMD_vertex_shader_viewport_index GL_AMD_vertex_shader_layer GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_cl_event GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_conditional_render_inverted GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_ES2_compatibility GL_ARB_ES3_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_2_compatibility GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_fragment_shader_interlock GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gl_spirv GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader_int64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_parallel_shader_compile GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_post_depth_coverage GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_locations GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_ballot GL_ARB_shader_bit_encoding GL_ARB_shader_clock GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shader_viewport_layer_array GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_sparse_buffer GL_ARB_sparse_texture GL_ARB_sparse_texture2 GL_ARB_sparse_texture_clamp GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_filter_minmax GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_polygon_offset_clamp GL_EXT_post_depth_coverage GL_EXT_provoking_vertex GL_EXT_raster_multisample GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shader_image_load_formatted GL_EXT_shader_image_load_store GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_sparse_texture2 GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_filter_minmax GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_window_rectangles GL_EXT_import_sync_object GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KHR_context_flush_control GL_KHR_debug GL_KHR_no_error GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_KTX_buffer_region GL_NV_alpha_to_coverage_dither_control GL_NV_bindless_multi_draw_indirect GL_NV_bindless_multi_draw_indirect_count GL_NV_bindless_texture GL_NV_blend_equation_advanced GL_NV_blend_equation_advanced_coherent GL_NV_blend_square GL_NV_command_list GL_NV_compute_program5 GL_NV_conditional_render GL_NV_conservative_raster GL_NV_conservative_raster_dilate GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_draw_texture GL_NV_draw_vulkan_image GL_NV_ES1_1_compatibility GL_NV_ES3_1_compatibility GL_NV_explicit_multisample GL_NV_fence GL_NV_fill_rectangle GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_coverage_to_color GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_fragment_shader_interlock GL_NV_framebuffer_mixed_samples GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_geometry_shader_passthrough GL_NV_gpu_program4 GL_NV_internalformat_sample_query GL_NV_gpu_program4_1 GL_NV_gpu_program5 GL_NV_gpu_program5_mem_extended GL_NV_gpu_program_fp64 GL_NV_gpu_shader5 GL_NV_half_float GL_NV_light_max_exponent GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_path_rendering_shared_edge GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_sample_locations GL_NV_sample_mask_override_coverage GL_NV_shader_atomic_counters GL_NV_shader_atomic_float GL_NV_shader_atomic_fp16_vector GL_NV_shader_atomic_int64 GL_NV_shader_buffer_load GL_NV_shader_storage_buffer_object GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_uniform_buffer_unified_memory GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NV_viewport_array2 GL_NV_viewport_swizzle GL_NVX_conditional_render GL_NVX_gpu_memory_info GL_NVX_multigpu_info GL_NVX_nvenc_interop GL_NV_shader_thread_group GL_NV_shader_thread_shuffle GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum GL_WIN_swap_hint WGL_EXT_swap_control
Photo of Dan

Dan

  • 1 Post
  • 1 Reply Like
I'm new here and I just read the last several weeks of posts in this thread.

 It appears to me that neither memory,  I/O or processors (including  a single core) are maxed out.  We could get those symptoms with CPU cache thrashing or intra-core communication problems,  but that would not explain performance degradation over time.   It's not a memory leak problem,  because the degradation continues with plenty of free memory.   And there isn't an I/O bottleneck (SSDs don't make much of a difference).

I suspect the tactical problem is lock contention   and the root cause is inadequate instrumentation/tools to detect which locks are not being released.

That said, I may be completely off-base.  Do any of you have other ideas about the cause?
(Edited)
Photo of Simon Chen

Simon Chen, Principal Computer Scientist

  • 1490 Posts
  • 471 Reply Likes
The team are working on and it just takes a little bit more design iterations...
Photo of Joel Weisbrod

Joel Weisbrod

  • 180 Posts
  • 98 Reply Likes
Simon,

We appreciate the efforts of the team, however, you have been telling me this for over one year. I cannot begin to tell you how much you have hurt my business.

When Adobe releases this last update, enhancement, new product group and design (I am not sure what to call this mess of products now) instead of addressing the issues we have been suffering with for so long, it becomes blatantly obvious where Adobe has its priorities.

Many of us in this group have Computer Science backgrounds and have offered to run debug code, supply you with presets, send you the catalogs, etc. and all we here from Adobe is "The team are working on and it just takes a little bit more design iterations..." 

How much longer can Adobe intentionally ignore this issue as many of us are trying and using software from your competitors. On my same computer, the competitors software is blazing fast, does not slow down, uses my GPU efficiently, etc. So, we all know the issue can be fixed but will Adobe ever stop adding new functionality long enough to fix what today remains essentially unusable.

I know, the team are working on it...
Photo of Gary Rowe

Gary Rowe

  • 97 Posts
  • 34 Reply Likes
Joel, with you 100% on that, well said (with LR from Raw Shooter, and 37 yrs in s/w coding & design).
Photo of Joel Weisbrod

Joel Weisbrod

  • 180 Posts
  • 98 Reply Likes
Simon, I thought you might like to see what we are up against.

First, in case you did not see my comments below, this you may find interesting.

So I had a small photo shoot this morning (200 Nikon D5 RAW images). I opened LR Classic CC and started importing from my 440Mb/Sec XQD memory Card at 10:57am. Lightroom has finished copying the photos to my hard drive (finished at 12:04 - one hour and 7 minutes) and is still building standard previews (it is now 12:20pm and it is almost done). As soon as LR finished, it ejected the XQD card. So, I removed it and reinserted it. While LR is still processing standard previews, I opened Capture One and started importing from the XQD card to a second folder on the same hard drive - essentially, the same procedure. Both are applying my basic start preset of adjustments and some metadata. Started the Capture One upload at 12:08 and it took 2 minutes and 20 seconds to copy the photos and another 1 minute and 7 seconds to finish building the previews. Capture One did this while LR was still creating standard previews.

WOW! 

Lightroom finished at 12:22 so the entire process took 2 hours and 25 minutes to copy the images and create standard previews. Thank the lord I didn't create 1:1 previews. Capture One did the same job, while LR was running in 3 minutes 27 seconds. 

In addition, during the import, Capture one is fully functional but a little slower. Lightroom Classic, one the other hand, is totally locked up during the import making it unusable until the import is completed.

Am I missing something here?????

Here is a video of the current LR Classic performance issue from the wedding I mentioned in posts a few days ago. Those photos took about 6 hours to import.

Perhaps this will help you see what I am facing and how this is seriously hurting my business. Please, please, help me as I can no longer work on my customer photos.

Photo of Fred I.

Fred I.

  • 23 Posts
  • 10 Reply Likes
I concur with the instrumentation observation but I do appreciate Adobe working diligently to find the error(s) and fix them.  I have used sysinternals tools (on Windows 10) to try to track down the issue and nothing jumps out to me (yet).  I am hoping that with Adobe Max over with, the team has a little more time to really dig into this issue.  I would be happy to send the team the photos and preset I use on import to see if they can replicate the issue however, the set is many GB in size.

Simon - if you all do have a debug flag or compilation with symbols, etc., I would be happy to run it with my photos and send your team any logs that might be generated.  I know chasing things like this down without being able to replicate {n} users's systems is frustrating.
Photo of Joel Weisbrod

Joel Weisbrod

  • 183 Posts
  • 103 Reply Likes
So I had a small photo shoot this morning (200 Nikon D5 RAW images). I opened LR Classic CC and started importing from my 440Mb/Sec XQD memory Card at 10:57am. Lightroom has finished copying the photos to my hard drive (finished at 12:04 - one hour and 7 minutes) and is still building standard previews (it is now 12:20pm and it is almost done). As soon as LR finished, it ejected the XQD card. So, I removed it and reinserted it. While LR is still processing standard previews, I opened Capture One and started importing from the XQD card to a second folder on the same hard drive - essentially, the same procedure. Both are applying my basic start preset of adjustments and some metadata. Started the Capture One upload at 12:08 and it took 2 minutes and 20 seconds to copy the photos and another 1 minute and 7 seconds to finish building the previews. Capture One did this while LR was still creating standard previews.

WOW! 

Lightroom finished at 12:22 so the entire process took 2 hours and 25 minutes to copy the images and create standard previews. Thank the lord I didn't create 1:1 previews. Capture One did the same job, while LR was running in 3 minutes 27 seconds. 

In addition, during the import, Capture one is fully functional but a little slower. Lightroom Classic, one the other hand, is totally locked up during the import making it unusable until the import is completed.

Am I missing something here?????

Simon, what exactly is going on here???
Photo of Joel Weisbrod

Joel Weisbrod

  • 183 Posts
  • 103 Reply Likes
Open Begging to Simon Chen and Jeff Tranberry

Will Anyone at Adobe Ever break the Cone of Silence? Many of us have been begging for help and begging to help find and address the serious performance issues we are experiencing. 

Simon, you keep telling us "the team are working on it" and I believe you. I am just not sure what "it" is that they are working on. Clearly it has not been the performance issue. I am waiting more than one year and perhaps everyone on the "team" were too busy inventing the new cloud based product to spend any effort on the existing performance issues. Seems to me that has been quite unfair considering I pay every month for software with a major issue you have essentially ignored for more than 12 months.

Jeff, you have remained totally silent on the issue. Please tell us to go away, tell us how to fix it, tell us when we can expect some help, but please tell us something!

Both of you saw the issue while connected to my PC over one year ago and still no help and no discussion. At the PC Expo in NYC last week, I spoke to someone from Adobe that seemed quite happy when I said that I was being forced to go to Capture One and he said good if that solves my issue. Well, besides that not being a great answer, I may need to do just that. Perhaps, if those of us with this major issue went away, Adobe would be much closer to cancelling the desktop version in lieu of the new cloud based scenario that none of us could use anyway due to the lack of features and sheer volume of photos we process daily or weekly.

Many of us with strong IT backgrounds have offered to help run test products to determine the source of the issue with no response from Adobe. We have posted information trying to show how LR runs so poorly on our systems while other products seem to race along without any slowdown at all. Some of us have been forced to go back to the prior 2015.12 version so we can get our work done albeit with a restart of LR after every 30 or so images.

I am quite sure none of us want to leave Adobe and none of us want to use other products but we need your help. So, here I am begging openly for some kind of help in solving this issue. 

Most of us with the problem are using high-end PC's. I have Windows 10 on a PC with a 3.3Ghz 12-core processor, 64Mb 2400 speed RAM, NVidia GTX Titan Graphics with 12Gb Dedicated VRam, SSD drives and I can tell you that everything on my PC is lightning fast (Including Capture One and ON1 RAW 2018) except for Lightroom. 

Some of us (including me) teach comprehensive classes in both Lightroom and Photoshop and get from 30-100 students per year to enroll in the Lightroom CC (now Classic) system. Please help me continue supporting Adobe and referring students to the cloud based systems.

I am aware that my CC monthly payment means nothing to Adobe and if I went away the company would never miss it. I am aware that I am a thorn in your side for constantly complaining about performance. I am aware that the company line is that Lightroom Classic is much faster than previous versions. Well, I have yet to talk to any of my colleagues, friends, students, or anyone for that matter that thinks the new program is faster. In fact, even several of my students using MAC OS feel that Classic is slower than the prior version. Okay, I am sure some see an improvement in performance but I am not sure who they are. No matter, every day I read forum comments from many of you longest loyal customers begging for help to solve the performance issue.

So, Adobe, Jeff, Simon: I and others stand before you begging for some relief. Our businesses are suffering as we cannot process our work. Our lives are being adversely affected as we have no time left after spending three or four times as long as before working on our daily shoot images. 

Please do not force us to move away from Adobe. Many of us have been loyal supporters for dozens of years. Your company was built on our continued loyalty, software purchases, and upgrades. We really want to stay loyal. We really want to continue to recommend Adobe products to our colleagues, friends, and students. We want Adobe to continue to be the leading force in the imaging business. To do all of this, WE NEED YOUR HELP!!!

Please, please, please help us. Let us help you. We will do anything you ask of us (within reason and our busy schedules) to identify and correct this issue. I am sure you have read some of my comments on other forum threads and the times I report are real!

Many of us await your reply!!!!    PLEASE HELP US!    PLEASE TALK TO US
Photo of Fred I.

Fred I.

  • 23 Posts
  • 10 Reply Likes
Just read Joel's latest comments.  I have exchanged emails with Joel and I can attest to the hardships he is having with Lightroom Classic.  I too, have had issues with the product (although, I do see some performance enhancements in Classic but still observe a progressively sluggish system after editing 10-30 images).

I assume that what we are seeing is not the 'norm' but I do wonder what is going on because this type of sluggishness is not typical in other products that I also use.

As many of us are long term users of Lightroom (and Photoshop) and have updated many many times over the years (both the products themselves and I would suspect the underlying operating system) - is it at all possible that old files (.dlls, etc.) are contributing to the issues?

I have not completely wiped my system clean and installed a fresh copy of Lightroom - has anyone tried this?  Even in a virtual machine?

I ask because I can not even begin to imagine that this is the 'norm' when the product team is testing the next version of the product... and I would assume that the product team likely starts with a clean system when testing?

Also, I would be interested in knowing if Camera RAW == Lightroom Develop Module... are individuals commenting on issues in Photoshop as well as it pertains to the Camera Raw module?
(Edited)
Photo of Chris Cook

Chris Cook

  • 8 Posts
  • 3 Reply Likes
I have just reinstalled a fresh version of Lightroom Classic on a fresh Windows 10 installation of the Fall Update. I have a high end system with NVMe SSDs and a GTX 1080Ti with a 20 core 7900X Processor. I have exactly the same problems as described here, a slowing down after a while. I am appalled at the reaction I get from Adobe, which usually is “disable the GPU” or “we can’t test every system”. To be clear this is a fresh installation with no other Software installed except BitDefender 2018 - is this the problem?

I’ve now let my subscription lapse and gone over to Capture One, which performs fine, but I will follow progress and perhaps come back to Adobe if the issues ever get sorted. Frankly though after years of the software going downhill performance wise, and the attitude of Adobe - I am not holding out much hope!
(Edited)
Photo of Assaf Frank

Assaf Frank

  • 148 Posts
  • 46 Reply Likes
Hi Guys, I have first alerted Adobe on this slowdown a year ago, on this thread which was largely ignored. it was related to export speed being double the time after working on images compared to export the same batch after a restart.

https://feedback.photoshop.com/photoshop_family/topics/lightroom-image-export-is-much-faster-after-r...

I have also linked the performance degradation in export results to the general slowdown in image editing. its all stem from the same issue to my analysis and by doing simple export benchmark which I will outline below we can give Adobe simple performance data. Adobe can try and replicate it very easily in their high-end CPU test machine.

here are the steps.

1. select 30 images for export as full size add them to a collection called '30 images export speed test'
2. Open the task manager and put it on the CPU graphs
3. Restart Lightroom
3. start the export and time it using your stopwatch on your phone.
4. you will notice the CPU shoots up to 100% on the first export
5. do a print screen of it if you want to post it here
6. once the 30 images have finished start the exact export again, without restarting Lightroom
7. look the CPU graph and you will notice no more 100%, Lightroom is now slower.
8. time it and take a print screen of the CPU graph if you wish to share it.
9. do it again, and time it and see if it's getting even slower
10. post your results here, with the OS, CPU/GPU type and No of Cores and type of Raw files

one big question is there anyone out there that the results are consistent with no performance degradation I would love to know their spec! 

here are my results for
30 raw files of phase one IIQ 280 80MP
Windows 10, i7 5960X 8 Cores,Nvidia 980Ti, 64GB RAM

export times Lightroom Classic CC 7.0.1 in minutes per run in order
1. 2:31  
2. 3:17
3. 3:56
4. 4:35
5. 5.10

clear performance decrease...

here are the CPU graphs 
1. first run CPU maxed to 100% most of the time 


2. second export CPU less busy export is slower


3. third export CPU even less busy and export is even slower

4. forth export even slower, I the screenshot you got the idea ...

Here are the capture one 10.2 times for the same 30 images in minutes
1. 1:17 
2. 1.16
3. 1.17
4. 1.16
5. 1.17

here is capture once CPU graph which you can see there is plenty of CPU to keep working on images while the export is running at consistent speed, no performance degradation.


Capture one puts Adobe to shame.
(Edited)
Photo of erik

erik

  • 2 Posts
  • 0 Reply Likes
Hi Assaf,

thanks for sharing your experience. I'd like to repeat the steps suggested by you, but just to make sure: how do the export-settings look like you used? Do you export as JPEG - and if so: at which compression level?

And just to add some personal experience here: For me Lightroom Classic doesn't perform better. Actually I have the impression it get even worse in some areas, for example when making exzessive use of the Adjustment Brush. In such cases LR slows down dramatically with every new picture I'm working on. Finally I'll have to restart LR.
Photo of Stefan Klein

Stefan Klein

  • 121 Posts
  • 67 Reply Likes
I ́ve tried your procedure with 30 Raw files from a 7D MK2. Export takes 12 sec. each and every time. No speed degradation here. No restart of LR after exports.
Win 10 (Anniversary Update), I7-5930K (6-core@4ghz); GTX 970 (Driver 376.33); 32GB RAM; LR Classic 7.01.
CPU always at 100%
Photo of Assaf Frank

Assaf Frank

  • 147 Posts
  • 46 Reply Likes
it might be the core count, anything above 6 might be an issue?
Photo of Chris Cook

Chris Cook

  • 8 Posts
  • 3 Reply Likes
Well my 7900k replaced a four core 7700k which was exactly the same.
Photo of Assaf Frank

Assaf Frank

  • 147 Posts
  • 46 Reply Likes
Do you mean your CORE I9-7900X 10 Cores replaced your old i7-7700K 4 Cores and both suffered from performance degradation in the same way? or both had no performance degradation?
Photo of Stefan Klein

Stefan Klein

  • 121 Posts
  • 67 Reply Likes
Assaf,

I don ́t see any speed decrease over time in LR Classic. Or maybe it ́s so little that I don ́t notice it. But I know that I had a slowdown in LR6 and a restart solved the problem. But I had to be rather careful to notice it: After mabye 10 minutes, the sliders` responsiveness on screen (or let ́s call it the image redraw) wasn ́t as smooth as at the beginning.
Photo of Chris Cook

Chris Cook

  • 8 Posts
  • 3 Reply Likes
Sorry .. I meant I am experiencing performance issues. See my earlier post in this thread.
Photo of Fred I.

Fred I.

  • 23 Posts
  • 10 Reply Likes
For those of you on Windows (10) who are experiencing slowdown problems after editing some number of images in Lightroom - are you using DirectX or OpenGL with Lightroom?
Photo of erik

erik

  • 2 Posts
  • 0 Reply Likes
definitely beyond standard LR slowness :) It must be something in your hw/sw that LR really doesn't like.
That's what I was thinking, too, when I just saw the video! This is WAY worse than the slowness I'm experiencing. Keeping fingers crossed that there is a quick solution for Joel... :-(

I will now give it a try using the OpenGL-thingy on my system.
Photo of Joel Weisbrod

Joel Weisbrod

  • 177 Posts
  • 98 Reply Likes
Without the GPU. it takes longer for the slowdown to start but it still slows down. As a side note, on my PC (Win 10/64 Creator's Edition (was the same before the Win Upg), Core i7 3.3Ghz with 12 Cores, 64Gb 2400Mhz RAM, Dual 1Tb SSD Drives, NVidia Titan Graphics with 12Gb Dedicated VRam, Dual 1920x1080 LG IPS Monitors - not even 4k or 5k - heaven forbid) Capture One is lightning fast and so is everything else I use except for Lightroom.
Photo of Alan Novak

Alan Novak

  • 18 Posts
  • 4 Reply Likes
Joel Weisbrod I'm not a coder so... what about trying just process explorer and process monitor from sysinternals? To evaluate process threads and stacks..to find something more specific.
Photo of Joel Weisbrod

Joel Weisbrod

  • 177 Posts
  • 98 Reply Likes
I'll try when I have a chance..
Photo of Fred I.

Fred I.

  • 23 Posts
  • 10 Reply Likes
Alan/Joel,  I have used the SysInternals programs as well as Visual Studio (debug programs) to profile Lightroom and you CAN get a lot of information on where there is resource contention and high CPU usage however, without the Lightroom symbols, it is impossible to see exactly where the issues is/are - instead, you will see what .dll (CameraRaw.dll) and resource ('handle 15', etc.) are at issue but for more insight, we need the symbols.  You will also see that DNG C++ library exceptions are thrown quite a bit.  The last part is interesting - I do not utilize .dng files however, Lightroom must use that library to store our edits (in addition to storing them in the underlying SQLite database).
(Edited)
Photo of Assaf Frank

Assaf Frank

  • 148 Posts
  • 46 Reply Likes
Hi Guys, I have first alerted Adobe on this slowdown a year ago, on this thread which was largely ignored. it was related to export speed being double the time after working on images compared to export the same batch after a restart.

https://feedback.photoshop.com/photoshop_family/topics/lightroom-image-export-is-much-faster-after-r....

I have also linked the performance degradation in export results to the general slowdown in image editing. its all stem from the same issue to my analysis and by doing simple export benchmark which I will outline below we can give Adobe simple performance data. Adobe can try and replicate it very easily in their high-end CPU test machine.

Here are the steps.

1. Select 30 images for export as full size add them to a collection called '30 images export speed test'
2. Open the task manager and put it on the CPU graphs 
3. Restart Lightroom
3. start the export and time it using your stopwatch on your phone.
4. you will notice the CPU shoots up to 100% on the first export
5. do a print screen of it if you want to post it here
6. once the 30 images have finished start the exact export again, without restarting Lightroom
7. Look the CPU graph and you will notice no more 100%, Lightroom is now slower.
8. Time it and take a print screen of the CPU graph if you wish to share it.
9. Do it again, and time it and see if it's getting even slower
10. Post your results here, with the OS, CPU/GPU type and No of Cores and type of Raw files

one big question is there anyone out there that the results are consistent with no performance degradation I would love to know their spec! 

here are my results for 

30 raw files of phase one IIQ 280 80MP
Windows 10, i7 5960X 8 Cores, Nvidia 980Ti, 64GB RAM

export times Lightroom Classic CC 7.0.1 in minutes per run in order
2:31, 3:17, 3:56, 4:35, 5:10

Here is the test again with the OpenGL instead of DirectX 
Config.lua flags: 
Develop.PreferOpenGL = true

2:24,3:12,3:55

Clear performance decrease in both scenarios, so the flag does not make any difference to performance degradation....

here are the CPU graphs 
1. first run CPU maxed to 100% most of the time 
 

2. second export CPU less busy export is slower
 

3. third export CPU even less busy and export is even slower

 
4. forth export even slower, I skipped the screenshot you got the idea ...

Here are the capture one 10.2 times for the same 30 images in minutes
1. 1:17 
2. 1.16
3. 1.17
4. 1.16
5. 1.17

here is capture one CPU graph which you can see there is plenty of CPU to keep working on images while the export is running at consistent speed, no performance degradation after 5 runs.


Capture one puts Adobe to shame.

Its frustrating Adobe put their resources into lightroom cloud instead of fixing this year-old bug.

Anyone who can do this simple test and let us know in which specs there is or isn't performance degradation so we can narrow our understanding for the reasons behind this problem.
Photo of Rory Jaffe

Rory Jaffe

  • 37 Posts
  • 5 Reply Likes
Another challenge for the Lightroom team is that, except for the Camera Raw core, Lightroom is primarily written in Lua, an interpreted language. Imagine if Microsoft wrote Excel in javascript!

Within the Adobe applications, I think this is a unique approach, and probably was there from the beginning and never changed.

While the Lua text is converted to byte code, it is not a compiled language like C. Lua is supposedly relatively fast, but there still has to be a performance penalty there. Hopefully the Lightroom team has identified some of the critical areas and are converting those into a compiled language.
Photo of Joel Weisbrod

Joel Weisbrod

  • 177 Posts
  • 98 Reply Likes
I wouldn't hold my breath!
Photo of john beardsworth

john beardsworth

  • 1095 Posts
  • 257 Reply Likes
Great theory. Just one problem - LR was mainly Lua before people were complaining about severe slowdowns, and it remains so when some people are.

One of the most frustrating aspects is that some people clearly have problems, others don't, and there is no single source of the slowdowns. I had one case where clearing the entire Develop History miraculously resolved severe slowdowns in Library and Develop, and in other cases the very-expensive VCSO presets were what reduced LR to a crawl. I would recommend trying both these solutions, but we should not need such voodoo.
Photo of Fred I.

Fred I.

  • 23 Posts
  • 10 Reply Likes
To those that have looked at the performance of LR with the Visual Studio product, were you able to successfully get the LR symbol files for their DLLs?  I am seeing some interesting contention for resources and exceptions being thrown in the code but without the symbols, it is hard to determine exactly where it is occurring.
Photo of Alan Novak

Alan Novak

  • 18 Posts
  • 4 Reply Likes
Guys, take a look at my last post. Maybe it could be relevant to some of you.
https://feedback.photoshop.com/photoshop_family/topics/lightroom-classic-cc-develop-module-still-slo...
(Edited)
Photo of TPJ

TPJ

  • 15 Posts
  • 11 Reply Likes
If Adobe would show you the internal processes they would have to change the name to Lightroom middle ages.
Thats why disabling the gpu support solves so much issues