diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt
index e4ea21d..6aa2940 100644
--- a/docs/CHANGELOG.txt
+++ b/docs/CHANGELOG.txt
@@ -68,6 +68,7 @@
   incorrectly locating the arrow hit position to the left of the frame. (#2451, #2438, #1897)
 - DragScalar, SliderScalar, InputScalar: Added p_ prefix to parameter that are pointers to the data
   to clarify how they are used, and more comments redirecting to the demo code. (#2844)
+- Misc: Optimized storage of window settings data (reducing allocation count).
 - Misc: Windows: Do not use _wfopen() if IMGUI_DISABLE_WIN32_FUNCTIONS is defined. (#2815)
 - Docs: Improved and moved FAQ to docs/FAQ.md so it can be readable on the web. [@ButternCream, @ocornut]
 - Docs: Added permanent redirect from https://www.dearimgui.org/faq to FAQ page.
diff --git a/imgui.cpp b/imgui.cpp
index 22f5395..f58737c 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -3809,8 +3809,7 @@
     g.PrivateClipboard.clear();
     g.InputTextState.ClearFreeMemory();
 
-    for (int i = 0; i < g.SettingsWindows.Size; i++)
-        IM_DELETE(g.SettingsWindows[i].Name);
+    g.SettingsWindowsNames.clear();
     g.SettingsWindows.clear();
     g.SettingsHandlers.clear();
 
@@ -9205,8 +9204,10 @@
     if (const char* p = strstr(name, "###"))
         name = p;
 #endif
-    settings->Name = ImStrdup(name);
-    settings->ID = ImHashStr(name);
+    size_t name_len = strlen(name);
+    settings->NameOffset = g.SettingsWindowsNames.size();
+    g.SettingsWindowsNames.append(name, name + name_len + 1); // Append with zero terminator
+    settings->ID = ImHashStr(name, name_len);
     return settings;
 }
 
@@ -9387,7 +9388,8 @@
     for (int i = 0; i != g.SettingsWindows.Size; i++)
     {
         const ImGuiWindowSettings* settings = &g.SettingsWindows[i];
-        buf->appendf("[%s][%s]\n", handler->TypeName, settings->Name);
+        const char* settings_name = g.SettingsWindowsNames.c_str() + settings->NameOffset;
+        buf->appendf("[%s][%s]\n", handler->TypeName, settings_name);
         buf->appendf("Pos=%d,%d\n", settings->Pos.x, settings->Pos.y);
         buf->appendf("Size=%d,%d\n", settings->Size.x, settings->Size.y);
         buf->appendf("Collapsed=%d\n", settings->Collapsed);
diff --git a/imgui_internal.h b/imgui_internal.h
index c1dda24..c199810 100644
--- a/imgui_internal.h
+++ b/imgui_internal.h
@@ -662,15 +662,16 @@
 };
 
 // Windows data saved in imgui.ini file
+// Because we never destroy or rename ImGuiWindowSettings, we can store the names in a separate buffer easily.
 struct ImGuiWindowSettings
 {
-    char*       Name;
+    int         NameOffset;     // Offset into SettingsWindowNames[]
     ImGuiID     ID;
     ImVec2ih    Pos;
     ImVec2ih    Size;
     bool        Collapsed;
 
-    ImGuiWindowSettings() { Name = NULL; ID = 0; Pos = Size = ImVec2ih(0, 0); Collapsed = false; }
+    ImGuiWindowSettings()       { NameOffset = -1; ID = 0; Pos = Size = ImVec2ih(0, 0); Collapsed = false; }
 };
 
 struct ImGuiSettingsHandler
@@ -1039,6 +1040,7 @@
     ImGuiTextBuffer                SettingsIniData;             // In memory .ini settings
     ImVector<ImGuiSettingsHandler> SettingsHandlers;            // List of .ini settings handlers
     ImVector<ImGuiWindowSettings>  SettingsWindows;             // ImGuiWindow .ini settings entries (parsed from the last loaded .ini file and maintained on saving)
+    ImGuiTextBuffer                SettingsWindowsNames;        // Names for SettingsWindows
 
     // Logging
     bool                    LogEnabled;
