Skip to content

Say when to use each performance profile, and what HighPerformance holds - #308

Draft
jwrosewell wants to merge 1 commit into
docs/profile-and-matched-user-agent-defaultsfrom
docs/performance-profile-guidance
Draft

jwrosewell wants to merge 1 commit into
docs/profile-and-matched-user-agent-defaultsfrom
docs/performance-profile-guidance

Conversation

@jwrosewell

@jwrosewell jwrosewell commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Why

The performance options page listed the profiles but gave little help in choosing one, and called HighPerformance "generally not recommended, because it uses about as much memory as MaxPerformance". The C library's next release changes what HighPerformance and IP Intelligence Balanced hold:

  • 51degrees-cxx#114 and #125: IP Intelligence HighPerformance loads only what the named properties read (loadRequiredPropertiesOnly), and Balanced holds the same whatever is named.
  • 51degrees-cxx#135: Device Detection HighPerformance holds only the values and text the named properties read.
  • All three are merged into the cxx rc and ship with its release candidate, 51degrees-cxx#137.

Change

  • src/devicedetection/features/performanceoptions.md
    • The HighPerformance row says what it holds when some properties are named, and recommends it for a few properties at in-memory speed.
    • A new Choosing a profile section says when to use each profile: plentiful memory, every property, a few properties, a shared network location, or limited memory.
    • A new IP Intelligence profiles section says what HighPerformance and Balanced hold, with the measured memory and lookup times from cxx#114.
    • The link to the profile definitions points at the current code for Device Detection and IP Intelligence, rather than a June 2021 commit of the old file layout.
  • src/devicedetection/cloudtoonpremise.md: the HighPerformance line no longer says it uses about as much memory as MaxPerformance, and links to the guidance.
  • src/ipintelligence/algorithm.md: naming required properties is described under HighPerformance, not Balanced.
  • src/productsummaries/hardwarebenchmarks.md: the same correction to the paragraph that described Balanced from version 4.5.98.

Sources checked

Not covered

  • BalancedTemp is still not described. Its settings differ by engine (reuseTempFile is false for Device Detection and true for IP Intelligence). The profile setters in the C++ layer don't copy the temp file setting, so outside Go it behaves as Balanced. That needs a decision before it is documented.

Merge order

  1. This is stacked on Say that PHP's start-up engine always uses MaxPerformance, and that Update Matched User Agent is on by default #307 and targets its branch. Once Say that PHP's start-up engine always uses MaxPerformance, and that Update Matched User Agent is on by default #307 merges into rc, retarget this to rc.
  2. Hold it, as Say that PHP's start-up engine always uses MaxPerformance, and that Update Matched User Agent is on by default #307 is held, until the cxx release in DOC: fix mobile nav-tree overlapping doc content #137 and the language releases that carry it are out. Until then the pages would describe behaviour the released packages don't have.

The performance options page now has a Choosing a profile section that
says when to use MaxPerformance, HighPerformance, Balanced and LowMemory,
and an IP Intelligence profiles section with measured memory and lookup
times for HighPerformance and Balanced against the Enterprise file.

HighPerformance now loads only what the named properties read, and IP
Intelligence Balanced holds the same whatever is named, so the pages that
said HighPerformance uses about as much memory as MaxPerformance, and that
naming properties changes what Balanced holds, now say what the library
does. The link to the profile definitions points at the current code for
both engines rather than an old commit.

These describe the C library's next release, so this merges after the
pull request it is stacked on and after that release and the language
releases that carry it.
@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

Documentation preview 👀

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant