javafx 内存占用_JavaFX:TouchGesture内存泄漏?

javafx 内存占用

在我的一个项目中,最近几天我在与内存泄漏作斗争(是……“耦合”),我得出的结论是可能存在与触摸/滚动手势有关的问题。 在下面的示例中,我有两个按钮。 第一个创建具有一千行的列表视图,第二个将其删除。

bildschirmfoto-2016-01-29-um-18-02-58

我做了以下观察:

  1. 当我单击“创建”并立即单击“销毁”时,所有内容将被垃圾收集。
  2. 当我单击“创建”并使用滚动条向下滚动,然后单击“销毁”时,一切将被垃圾收集。
  3. 当我单击“创建”,然后使用手势向下滚动(使用Mac Magic Mouse)时,垃圾收集失败。

我使用了JDK附带的jvisualvm ,并使用“ Sampler”选项卡查看堆空间。 我筛选了“ TestItem”类,然后看到在按下“创建”按钮后,那些项始终仍在内存中为最后一个ListView创建的那些项。

bildschirmfoto-2016-01-29-um-17-34-16

当我转储堆并使用“ Eclipse Memory Analyzer”对其进行分析时,我可以看到很可能是ScrollGesture保留了对列表视图/数据的引用。

bildschirmfoto-2016-01-29-um-17-36-02

有人可以确认吗? 这是一个已知的错误? 我在Java错误数据库中找不到与此问题相关的任何内容。

import java.util.ArrayList;
import java.util.List;import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ListView;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;public class MemoryLeakListViewApp extends Application {@Overridepublic void start(Stage primaryStage) throws Exception {BorderPane pane = new BorderPane();Scene scene = new Scene(pane);Button createButton = new Button("Create");createButton.setOnAction(evt -> {ListView listView = new ListView();List children = new ArrayList();for (int i = 0; i < 1000; i++) {children.add(new TestItem("Row " + i));}listView.getItems().setAll(children);pane.setCenter(listView);         });Button deleteButton = new Button("Destroy");         deleteButton.setOnAction(evt -> {pane.setCenter(null);});HBox box = new HBox();box.getChildren().addAll(createButton, deleteButton);pane.setTop(box);primaryStage.setScene(scene);primaryStage.setWidth(800);primaryStage.setHeight(800);primaryStage.show();}static class TestItem {private String name;public TestItem(String name) {this.name = name;}@Overridepublic String toString() {return name;}}public static void main(String[] args) {launch(args);}
}

翻译自: https://www.javacodegeeks.com/2016/02/javafx-touchgesture-memory-leak.html

javafx 内存占用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手机单选按钮 html5,@html剃刀单选按钮mvc5(@html razor radio buttons mvc5)

这里是我的视图模型public class UserResponseModel{public string QuestionId { get; set;}public string QuestionText { get; set; }public bool IsChecked { get; set; }}所以&#xff0c;对于这个复选框精美作品for (var i 0; i < Model.UserResponses.Count; i){Html…

cucumber jvm_用Cucumber JVM编写BDD测试

cucumber jvmCucumber JVM是编写BDD测试的出色工具。在本文中&#xff0c;我想对Cucumber JVM的BDD进行介绍。 让我们开始吧… 什么是BDD&#xff1f; 简而言之&#xff0c;BDD试图解决“通过示例理解需求”的问题 BDD工具 有许多可用于BDD的工具&#xff0c;有趣的是&#…

计算机网络英文介绍,计算机网络英文自我介绍

计算机网络英文自我介绍It’s my pleasure to introduce myself to you here. My name is XX, Icome from XX which is a beautiful city. And I am a candidate forthe position of Sales Representative. 公务员面试自我介绍I attended Nantong University in 2003. My major…

模拟模型学习 几何布朗运动_Java的几何布朗运动

模拟模型学习 几何布朗运动维纳过程是一个连续时间的随机过程&#xff0c;以纪念诺伯特维纳。 通常用于用随机成分表示噪音或财务状况。 可以计算几何布朗运动以可视化某些界限&#xff08;以分位数表示&#xff09;以暗示绝对范围。 为了进行计算&#xff0c;需要以下参数&am…

计算机网络基础 第4章 龚娟,计算机网络基础 人民邮电 龚娟 第4章习题答案

1&#xff0e;关于IPv4地址的说法&#xff0c;错误的是( C )。A&#xff0e;IP地址是由网络地址和主机地址两部分组成 B&#xff0e;网络中的每台主机分配了唯一的IP地址 C&#xff0e;IP地址只有三类&#xff1a;A&#xff0c;B&#xff0c;CD&#xff0e;随着网络主机的增多&…

动态调整线程池_调整线程池的重要性

动态调整线程池无论您是否知道&#xff0c;您的Java Web应用程序很可能都使用线程池来处理传入的请求。 这是许多人忽略的实现细节&#xff0c;但是迟早您需要了解如何使用该池以及如何为您的应用程序正确调整池。 本文旨在说明线程模型&#xff0c;线程池是什么以及正确配置线…

java系统架构师有的特质_Java中特质模式的定义

java系统架构师有的特质在本文中&#xff0c;我将介绍特征的概念&#xff0c;并为您提供一个具体示例&#xff0c;说明如何在Java中使用它们以减少对象设计中的冗余。 我将首先提出一个虚构的案例&#xff0c;其中可以使用特征来减少重复&#xff0c;然后以使用Java 8的特征模式…

html快速排序,快速排序.html

Titlevar arr2 [13, 4, 35, 67, 86, 24, 86, 34, 76];function quickSort(arr) {//如果数组<1,则直接返回if (arr.length < 1) {return arr;}var pivotIndex arr[arr.length - 1];//找基准&#xff0c;并把基准从原数组删除// var pivotarr.splice(pivotIndex,1)[0];//…

tdd java_Java TDD简介–第2部分

tdd java再次问好&#xff01; 在上一篇博客文章中&#xff0c;我在没有紧密引用Java的情况下总体上解释了TDD理论 &#xff0c;但是在这一部分中&#xff0c;我们开始进行TDD实践。 我们的目标是遍历TDD的所有阶段&#xff1a;从需求分析到测试代码的重构。 我们将在具有Java&…

计算机怎么没有桌面文件夹名称大全,你的电脑文件总是找不到?是时候学习文件夹分类整理了...

我们常常说做好办公整理&#xff0c;我们工作起来才更有效率&#xff1b;此处的办公整理不单单是对办公桌整理整齐&#xff0c;电脑里面的文件也需要定期整理&#xff0c;你有没有发现常常找一个文件的时候却总是找不到&#xff1f;那么此时就应该学习文件夹分类整理了&#xf…

selenide_使用Selenide进行有效的UI测试

selenide等待奇迹 圣诞节是奇迹的时刻。 在新的一年的前夕&#xff0c;我们都会制定下一个计划。 我们希望所有问题都将在最后一年消失&#xff0c;在来年出现奇迹。 每个Java开发人员都梦想着奇迹&#xff0c;使他成为世界上最有效的Java开发人员。 我想向你展示这样的奇迹…

计算机无法维修技术鉴定,计算机维修工技能鉴定(初级)剖析..pdf

计算机(微机)维修工初级理论知识复习题一、单项选择1、液晶显示器画面出现闪动的现象&#xff0c;原因可能是 ( C )。A 、数据线与显卡接口接触不良 B、操作系统有问题C 、显示器与主板不兼容 D、以上都不正确2、职业道德内涵是从事一定职业的人们在职业活动中应该遵循的&#…

实践与反思_在行动中反思的实践

实践与反思在上一篇文章中 &#xff0c;我解释了最基本的敏捷实践是反思。 在本文中&#xff0c;我概述了组织&#xff0c;团队和人员如何在行动中运用反思的示例。 回顾反思 回顾是功能强大的工具&#xff0c;整个团队都可以使用它们来反思其当前的工作实践&#xff0c;以了解…

win10无法更改计算机设置,Win10“无法保存ip设置,请检查一个或多个设置并重试”的解决方法...

近期有网友想要在Win10系统中手动设置本机IP地址&#xff0c;但是填写完毕之后却提示了“无法保存ip设置,请检查一个或多个设置并重试”&#xff0c;那么遇到这个问题&#xff0c;我们要如何解决呢&#xff1f;下面装机之家分享一下Win10“无法保存ip设置,请检查一个或多个设置…

24段魔尺拼图指南_拼图项目动手指南

24段魔尺拼图指南Jigsaw项目将把模块化引入Java平台&#xff0c;根据原始计划&#xff0c;它将在12月10日完成功能。 所以我们在这里&#xff0c;但拼图在哪里&#xff1f; 在过去的六个月中肯定发生了很多事情&#xff1a; 原型问世 &#xff0c;内部API的迫在眉睫的删除引起…

2018深大计算机考研,深圳大学2018年硕士生招生复试分数线及调剂需求

深圳大学2018年硕士生招生复试分数线及调剂需求深圳大学硕士研究生复试分数线是在通过国家A类线(国家线)的基础上&#xff0c;按各专业复试人数中最后一名考生的总分成绩确定的。根据我校高水平大学建设目标&#xff0c;原则上只接收全日制本科毕业于具有推荐优秀应届本科毕业生…

sql 解析 java_将Java 8流解析为SQL

sql 解析 java当Java 8发行并且人们开始流式处理各种东西时&#xff0c;不久之后他们就开始想象如果可以以相同的方式使用数据库将有多大的潜力。 本质上&#xff0c;关系数据库由以表状结构组织的巨大数据块组成。 这些结构非常适合进行过滤和映射操作&#xff0c;如SQL语言的…

Socket编程项目VS开发环境配置

项目属性->连接器->输入->附加依赖项里加入ws2_32.lib

杭州电子科技大学保研计算机,杭州电子科技大学计算机学院计算机科学与技术(一级学科)保研细则...

杭州电子科技大学计算机学院计算机科学与技术(一级学科)保研细则信息&#xff0c;是考研之前需要获取相应的考研信息&#xff0c;比如考试大纲、招考专业、招考目录等等基本信息&#xff0c;这些内容是进行考研前期工作的必要准备。考生可以从各院校的研招网进行查询&#xff0…

keepalived安装与配置_Nginx_Keepalived高可用配置

利用keepalived实现高可靠配置(HA) 2.1. 高可靠概念HA(High Available)&#xff1a;高可用性集群&#xff0c;是保证业务连续性的有效解决方案&#xff0c;一般有两个或两个以上的节点&#xff0c;且分为活动节点及备用节点。2.2. 高可靠软件keepalivedkeepalive是一款可以实现…