World is now on Opti ID! Learn more

Daniel Ovaska
Mar 5, 2019
  51
(0 votes)

Performance - GetChildren vs GetBySegment

GetChildren is a decent method that is also cached in the background. But if you have 1000s of children you will get some performance hits. Another good option if you are only searching for a single content item is to use GetBySegment method. This one works well with large amounts of children with excellent performance. 

I tried it on folder that has 13000+ children (yes, bad idea) and these were the results when running on local machine

  1. GetChildren
    
    foreach (var folder in ContentRepository.GetChildren<ContentFolder>(parent)​)
    {
       if (folder.Name == customerId)
       {
          ...                    
       }
    }
    17.857s
  2. GetBySegment
     var customerFolder = ContentRepository.GetBySegment(parent, customerId, LanguageSelector.AutoDetect());​
    0.147s

So that's a pretty huge performance gain by more than a factor 100. Hope it helps someone out there to pick the right tool for the job. 

Few children => GetChildren
Many children => GetBySegment or Episerver Find...

Happy coding everyone!

Mar 05, 2019

Comments

Please login to comment.
Latest blogs
Make Global Assets Site- and Language-Aware at Indexing Time

I had a support case the other day with a question around search on global assets on a multisite. This is the result of that investigation. This co...

dada | Jun 26, 2025

The remote server returned an error: (400) Bad Request – when configuring Azure Storage for an older Optimizely CMS site

How to fix a strange issue that occurred when I moved editor-uploaded files for some old Optimizely CMS 11 solutions to Azure Storage.

Tomas Hensrud Gulla | Jun 26, 2025 |

Enable Opal AI for your Optimizely products

Learn how to enable Opal AI, and meet your infinite workforce.

Tomas Hensrud Gulla | Jun 25, 2025 |

Deploying to Optimizely Frontend Hosting: A Practical Guide

Optimizely Frontend Hosting is a cloud-based solution for deploying headless frontend applications - currently supporting only Next.js projects. It...

Szymon Uryga | Jun 25, 2025

World on Opti ID

We're excited to announce that world.optimizely.com is now integrated with Opti ID! What does this mean for you? New Users:  You can now log in wit...

Patrick Lam | Jun 22, 2025

Avoid Scandinavian Letters in File Names in Optimizely CMS

Discover how Scandinavian letters in file names can break media in Optimizely CMS—and learn a simple code fix to automatically sanitize uploads for...

Henning Sjørbotten | Jun 19, 2025 |