garbage-collection 相关问题

垃圾收集(GC)是一种自动内存管理形式,它试图回收垃圾或由程序不再使用的对象占用的内存。

垃圾收集问题(WinUI && NET8.0)

我目前遇到了我的第一个 GC 问题。使用应用程序一段时间后(例如 2 分钟或有时 20 分钟或更长时间),应用程序变得非常非常慢,并且 ram 和 cpu 使用率是

回答 1 投票 0

GC 未清除无法访问的 java.lang.ClassValue$ClassValueMap 对象

我们在 Wildfly 上部署了一个企业应用程序。用于运行的Java版本是11.0.22+7-LTS。 我们在执行环境中看到一个奇怪的问题。每次我们收集实时堆转储时,我们都会看到大量备忘录......

回答 1 投票 0

在Python中执行类(元类实例)销毁代码

我们有一些 API 应该在每个 python 进程中关闭一次(例如 api.shutdown()),并且仅特定于控制器层次结构中的特定类(例如 ControllerA)(例如 Control...

回答 1 投票 0

Unity - 在 C# 集合上使用本机集合

我正在 Unity 中开发一款游戏。我正在使用行进立方体来创建可破坏的地形,它运行良好并且速度相当快(<10ms for a very large chunk of destruction in the

回答 1 投票 0

对于维护大量缓存数据的应用程序如何调优GC?

我们正在生产中运行 Spring boot RestAPI 应用程序。突然,进程不接受任何请求,我们也看不到日志。进程挂起。我们正在使用 G1GC。我们正在维护

回答 1 投票 0

如何将Java GC日志定向到Java Logger?

我有一个在 Google 的 Cloud-Run 上运行的 Java 服务器,并通过以下方式启用了垃圾收集日志记录 “-Xlog:gc”, “-Xlog:gc * =信息,堆* =调试,安全点=信息”, &...

回答 1 投票 0

CollectionView GC运行多次,MAUI android

我有CollectionView: 我有CollectionView: <CollectionView x:Name="ItemsList" x:DataType="viewModel:ItemsVM" IsVisible="{Binding IsCollectionVisible}" ItemsSource="{Binding Items}" BackgroundColor="{StaticResource Grey}" SelectedItem="{Binding SelectedItem}" SelectionMode="Single" SelectionChangedCommand="{Binding SelectedTileCommand}" SelectionChangedCommandParameter="{Binding Path=SelectedItem, Source={RelativeSource Self}}" > <CollectionView.ItemsLayout> <GridItemsLayout Orientation="Vertical" VerticalItemSpacing="20" HorizontalItemSpacing="20" Span="2" /> </CollectionView.ItemsLayout> <CollectionView.ItemTemplate > <DataTemplate x:DataType="model:Item"> <Grid Padding="2"> <custom:ItemTile ItemModel="{Binding .}" /> </Grid> </DataTemplate> </CollectionView.ItemTemplate> </CollectionView> 和ItemTile: <ContentView.ControlTemplate> <ControlTemplate> <Border> <Grid Background="{StaticResource White}" WidthRequest="322" HeightRequest="86" RowDefinitions="0.95*, *" ColumnDefinitions="13, *" > <Grid Grid.Column="1" ColumnDefinitions="*, 84"> <Label Grid.Column="0" VerticalTextAlignment="Center" HorizontalTextAlignment="Start" Text="{TemplateBinding ItemModel.Name}" Style="{StaticResource TitleBlue}" /> <Polygon Grid.Column="1" Fill="{TemplateBinding ItemModel.IssueTypes, Converter={StaticResource IssueTypeToColorConverter}}" Points="0,0 84,0 84,41 43,41" /> <Image Grid.Column="1" HorizontalOptions="End" Source="{TemplateBinding ItemModel.IssueTypes, Converter={StaticResource IssueTypeToIconConverter}}" HeightRequest="35" /> </Grid> <Grid Grid.Row="1" Grid.Column="1" VerticalOptions="Center" ColumnDefinitions="63, 31, 57, 31, 69" > <HorizontalStackLayout Spacing="7" Grid.Column="0"> <Image HeightRequest="24" WidthRequest="24" Source="{TemplateBinding ItemModel.Connected, Converter={StaticResource IconConnectionConverter}}"/> <Label Style="{StaticResource TextBlue1}" VerticalTextAlignment="Center"> <Label.Triggers> <DataTrigger TargetType="Label" Binding="{TemplateBinding ItemModel.Connected}" Value="True"> <Setter Property="Text" Value="{local:Translate CON}" /> </DataTrigger> <DataTrigger TargetType="Label" Binding="{TemplateBinding ItemModel.Connected}" Value="False"> <Setter Property="Text" Value="{local:Translate DISCON}" /> </DataTrigger> </Label.Triggers> </Label> </HorizontalStackLayout> <HorizontalStackLayout Spacing="7" Grid.Column="2"> <Image HeightRequest="30" WidthRequest="30" Source="{TemplateBinding ItemModel.On, Converter={StaticResource IconStateConverter}}"/> <Label Style="{StaticResource TextBlue1}" VerticalTextAlignment="Center"> <Label.Triggers> <DataTrigger TargetType="Label" Binding="{TemplateBinding ItemModel.On}" Value="True"> <Setter Property="Text" Value="{local:Translate ON}" /> </DataTrigger> <DataTrigger TargetType="Label" Binding="{TemplateBinding ItemModel.On}" Value="False"> <Setter Property="Text" Value="{local:Translate OFF}" /> </DataTrigger> </Label.Triggers> </Label> </HorizontalStackLayout> <HorizontalStackLayout Spacing="7" Grid.Column="4"> <Image HeightRequest="30" WidthRequest="30" Source="{TemplateBinding ItemModel.OperationMode, Converter={StaticResource IconOperatingModeConverter}}"/> <Label Style="{StaticResource TextBlue}" VerticalTextAlignment="Center"> <Label.Triggers> <DataTrigger TargetType="Label" Binding="{TemplateBinding ItemModel.OperationMode}" Value="{x:Static features:OperationMode.Automatic}"> <Setter Property="Text" Value="{local:Translate AUTO}" /> </DataTrigger> <DataTrigger TargetType="Label" Binding="{TemplateBinding ItemModel.OperationMode}" Value="{x:Static features:OperationMode.Manual}"> <Setter Property="Text" Value="{local:Translate MAN}" /> </DataTrigger> <DataTrigger TargetType="Label" Binding="{TemplateBinding ItemModel.OperationMode}" Value="{x:Static features:OperationMode.Undefined}"> <Setter Property="Text" Value="" /> </DataTrigger> <DataTrigger TargetType="Label" Binding="{TemplateBinding ItemModel.OperationMode}" Value="{x:Static features:OperationMode.Setup}"> <Setter Property="Text" Value="" /> </DataTrigger> </Label.Triggers> </Label> </HorizontalStackLayout> </Grid> </Grid> </Border> </ControlTemplate> </ContentView.ControlTemplate> 我在我的集合视图中创建/更新项目,例如: if (Items.Count != receivedData.Count) { Items.Clear(); Items.AddRange(receivedData); } var differentElements = receivedData.Except(Items).ToList(); foreach (var element in differentElements) { var existingElement = Items.FirstOrDefault(e => e.Name == element.Name); int index = Items.IndexOf(existingElement!); Items[index].On = element.On; Items[index].Connected = element.Connected; Items[index].IssueTypes = element.IssueTypes; Items[index].OperationMode = element.OperationMode; } 每次创建 CollectionView 时,GC 都会运行并减慢加载数据的速度。 应用程序立即收到数据,因为我从 UdpClient 获取数据,但在 UI 中加载和显示需要一段时间。下面是创建 CollectionView 时输出的日志。 GC 运行的数量与 CollectionView 中有多少项有关。我在 Android 模拟器中发现了这个问题,但是当我从发布的 apk 文件运行应用程序时,加载也需要一段时间,但比调试模式下要快一点。 [mobileapp] Explicit concurrent copying GC freed 3186(451KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 5741KB/11MB, paused 963us,128us total 22.669ms [EGL_emulation] app_time_stats: avg=8.24ms min=2.93ms max=31.73ms count=35 [mobileapp] Explicit concurrent copying GC freed 1627(88KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 5780KB/11MB, paused 814us,100us total 19.915ms [mobileapp] Explicit concurrent copying GC freed 388(67KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 5809KB/11MB, paused 616us,94us total 18.880ms [EGL_emulation] app_time_stats: avg=6.99ms min=3.35ms max=27.69ms count=31 [mobileapp] Explicit concurrent copying GC freed 704(62KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 5874KB/11MB, paused 1.196ms,91us total 17.312ms [mobileapp] Explicit concurrent copying GC freed 420(57KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 5912KB/11MB, paused 914us,91us total 18.945ms [EGL_emulation] app_time_stats: avg=7.25ms min=3.05ms max=25.70ms count=30 [mobileapp] Explicit concurrent copying GC freed 361(50KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 5942KB/11MB, paused 612us,102us total 20.923ms [EGL_emulation] app_time_stats: avg=5.72ms min=2.97ms max=26.90ms count=30 [mobileapp] Explicit concurrent copying GC freed 726(76KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 6009KB/11MB, paused 1.836ms,98us total 28.911ms [mobileapp] Explicit concurrent copying GC freed 416(59KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 6045KB/11MB, paused 1.799ms,94us total 21.606ms [EGL_emulation] app_time_stats: avg=10.53ms min=2.91ms max=34.14ms count=36 [mobileapp] Explicit concurrent copying GC freed 699(60KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 6113KB/11MB, paused 591us,119us total 21.916ms [mobileapp] Explicit concurrent copying GC freed 361(66KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 6142KB/11MB, paused 579us,114us total 28.567ms 由于您在项目模板中为父网格使用固定的 HeightRequest 和 WidthRequest,因此您可以将 ItemSizingStrategy="MeasureFirstItem" 设置为 collectionview。希望这有帮助。

回答 1 投票 0

当值引用键时,Java WeakHashMap 泄漏

我有一个 WeakHashMap,其中值可能引用键,这将导致内存泄漏,因为该值被保存为强引用,因此键将是强可达的。 有没有...

回答 1 投票 0

了解Go垃圾收集器

我正在尝试更深入地研究 golang 并开始研究 golang GC 实现。 我读过这篇文章并尝试理解它。 我们来看看文章的推理部分。 我...

回答 1 投票 0

防止 Android 中的片段恢复

我们使用的是Fragment,我们不需要它们在重新创建Activity时自动恢复。 但是Android每次当Activity::onCreate(Bundle savingInstanceState) -> super.onCreate(

回答 10 投票 0

内部类和垃圾收集:Java 8 和最新 Java 之间的行为差异

今天面试,面试官给出了如下代码。他们询问 Java 8 和最新版本的 Java 中的输出是什么。 根据我的理解,由于 B 是一个内部...

回答 1 投票 0

实例化许多短期字典<string, MyClass>可以吗?还是对象池更好?

我有一个方法可以从数据库中读取一些值,然后生成一个字典 - 可能会读取数千次。 公共 IEnumerable> GetValues() { 可变资源...

回答 1 投票 0

程序内核运行的这种方案是否会影响内存的使用和利用率?

当然,我知道Java程序占用相当多的内存并且不愿意放弃它,但我仍然想了解这种构建程序的方案是否有效(对于一个...

回答 1 投票 0

Python 中的“del”语句如何工作?

假设我有一个变量x,然后尝试del x。这会立即释放分配的内存,还是仍会等待垃圾收集器在稍后的某个时间点收集对象(如 J...

回答 4 投票 0

为什么表单事件不必注销?

默认形式的 Dispose 函数将如下所示: 受保护的覆盖无效处置(布尔处置) { if (处置 && (组件!= null)) { 组件.处置...

回答 1 投票 0

如何强制JavaScript深度复制字符串?

我有一些 JavaScript 代码,如下所示: var myClass = { ID:{} myFunc:函数(huge_string){ var id = giga_string.substr(0,2); ids[id] = true; } } 后来的功能...

回答 11 投票 0

神秘的类字段“far”阻止垃圾收集

我有一个项目,其中包含与此类似的类: 数据类 Project(val someMemoryHeavyMember: String) { 伴生对象{ fun readFile(文件: 文件): 项目 { 待办事项(&...

回答 1 投票 0

从命令行运行垃圾收集器? [已关闭]

是否可以从命令行运行.NET垃圾收集器,例如不写代码? 编辑: 当被问到这个问题时,我的意思正是这里对 Java 垃圾收集器的要求: 如何要求...

回答 4 投票 0

已删除的文件保留文件描述符直到垃圾回收

我有一个java服务,可以下载非常大的文件,进行一些处理,然后删除它们。 我注意到该服务会保留文件描述符,直到垃圾收集运行。 这我...

回答 2 投票 0

如何检查我是否正确释放(处置)所有内容?

我正在构建一个应用程序,我感觉模拟器在一系列热重载后变得越来越慢。

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.