perf: set static mmap threshold on gnu target env by default

This commit is contained in:
Michael Aaron Murphy 2025-02-12 18:30:32 +01:00 committed by Jeremy Soller
parent 9426a985c6
commit f59eb77252
5 changed files with 34 additions and 6 deletions

View file

@ -138,7 +138,11 @@ pub(crate) fn iced_settings<App: Application>(
///
/// Returns error on application failure.
pub fn run<App: Application>(settings: Settings, flags: App::Flags) -> iced::Result {
let default_font = settings.default_font;
#[cfg(target_env = "gnu")]
if let Some(threshold) = settings.default_mmap_threshold {
crate::malloc::limit_mmap_threshold(threshold);
}
let (settings, mut flags, window_settings) = iced_settings::<App>(settings, flags);
#[cfg(not(feature = "multi-window"))]
{

View file

@ -38,6 +38,9 @@ pub struct Settings {
/// Default size of fonts.
pub(crate) default_text_size: f32,
/// Set the default mmap threshold for malloc with mallopt.
pub(crate) default_mmap_threshold: Option<i32>,
/// Whether the window should be resizable or not.
/// and the size of the window border which can be dragged for a resize
pub(crate) resizable: Option<f64>,
@ -85,6 +88,7 @@ impl Default for Settings {
default_font: font::default(),
default_icon_theme: None,
default_text_size: 14.0,
default_mmap_threshold: Some(128 * 1024),
resizable: Some(8.0),
scale_factor: std::env::var("COSMIC_SCALE")
.ok()