JavaFX:TouchGesture内存泄漏?

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

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

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

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

相关文章

导入一个android项目需要改什么意思,导入别人的Android Studio项目前要修改的文件...

AS在导入项目过程中会检查项目中所需的gradle版本 sdk版本等本地是否有, 没有的话就会从官网下载, 众所周知要想从谷歌官网下载东西在我朝是十分困难的.所以需要修改成本地有的.主要改三个个第一个地方,修改android gradle插件版本号1.找到项目目录下的build.gradleproject/bui…

Struts2中通过Ajax传递json数据

1、导入Struts2所需要的jar包 下载Struts2的jar包时&#xff0c;可以下载struts-2.5.13-min-lib.zip&#xff0c;然后放到项目的/WebContent/WEB-INF/lib路径下struts-2.5.13-min-lib只包含以下jar包&#xff1a;   commons-fileupload-1.3.3.jar commons-io-2.5.jar commons…

[js高手之路] html5 canvas系列教程 - 线条样式(lineWidth,lineCap,lineJoin,setLineDash)

上文&#xff0c;写完弧度与贝塞尔曲线[js高手之路] html5 canvas系列教程 - arcTo(弧度与二次,三次贝塞尔曲线以及在线工具)&#xff0c;本文主要是关于线条的样式设置 lineWidth: 设置线条的宽度&#xff0c;值是一个数值&#xff0c;如lineWidth 5. 画3条不同宽度的线条&am…

在线斯诺克html5,用HTML 5打造斯诺克桌球俱乐部

本文介绍了如何利用HTML5技术来打造一款非常酷的斯诺克桌球游戏&#xff0c;文章中详细地列出了开发的全过程&#xff0c;并解说了实现这个游戏的几个关键点。在文章末尾我向大家提供了游戏的在线实例页面和源码下载链接&#xff0c;如果你只是想玩玩(需要使用支持HTML5的浏览器…

jpa jsf_完整的Web应用程序Tomcat JSF Primefaces JPA Hibernate –第3部分

jpa jsfPrimefaces AutoComplete&#xff0c;JSF转换器 这篇文章从第一部分和第二部分继续。 JSF拥有Converter工具&#xff0c;可以帮助我们从用户视图中获取一些数据并将其转换为从数据库或缓存中加载的对象。 在“ com.converter”包中&#xff0c;创建以下类&#xff1a;…

会话保持 (转)

http://www.cnblogs.com/kellyseeme/p/7599061.html 理论部分 会话也就是session&#xff0c;主要存储在服务器端&#xff0c;用来识别用户的身份。 在浏览器中向服务端发送请求的时候&#xff0c;不是http协议就是https协议&#xff0c;而两种协议在发送请求的时候&#xff0c…

win7链接html线到屏幕上,为你解决win7系统html文件图标变成空白的具体技巧 - win7吧...

我们经常在电脑上安装应用软件&#xff0c;难免会遇到诸如win7系统html文件图标变成空白的状况&#xff0c;对于大多电脑用户而言&#xff0c;大家几乎都是首次看到win7系统html文件图标变成空白这种状况&#xff0c;其实小编的经验是碰到win7系统html文件图标变成空白的问题别…

计算机科学之前说,国内计算机科学十强大学是哪些?前2名没悬念,后面几所都不好说...

随着科技的发展、产业结构的不断优化&#xff0c;许多单位对计算机相关专业人才需求量越来越大&#xff0c;计算机专业毕业生就业情况普遍不差。加上计算机学科本身就给人一种“格局很高”的感觉&#xff0c;所以该专业成为了当下最热门的专业之一&#xff0c;每年高考都会有一…

服务引用代理类_在代理类中引用动态代理

服务引用代理类在Stackoverflow中有一个有趣的问题 &#xff0c;关于Spring Bean如何获​​得对由Spring创建的代理的引用以处理事务&#xff0c;Spring AOP&#xff0c;缓存&#xff0c;异步流等。需要对代理的引用&#xff0c;因为如果存在对自身的调用通过代理bean&#xff…

Java中特质模式的定义

在本文中&#xff0c;我将介绍特征的概念&#xff0c;并为您提供一个如何在Java中使用它们以在对象设计中减少冗余的具体示例。 我将首先提出一个虚构的案例&#xff0c;其中可以使用特征来减少重复&#xff0c;然后以使用Java 8的特征模式示例实现为结尾。 假设您正在开发留言…

计算机 注册表 远程桌面,仅允许运行使用网络级别身份验证的远程桌面计算机连接失败处理方法(远程桌面连接)...

计算机在开启远程桌面的时候选中了“仅允许运行使用网络级别身份验证的远程桌面计算机连接”&#xff0c;于是连接时提示错误如下&#xff1a;远程计算机需要网络级别身份验证&#xff0c;而您的计算机不支持该验证&#xff0c;请联系您的系统管理员或者技术人员来获得帮助解决…

前端笔记----定位

一.定位分三种&#xff1a;相对定位&#xff0c;绝对定位和固定定位。 1.相对定位&#xff1a;元素所占据的文档流的位置保留&#xff0c;元素本身相对自身原位置进行偏移&#xff1b; 如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head>&l…

线程并发库和线程池的作用_并发–顺序线程和原始线程

线程并发库和线程池的作用不久前&#xff0c;我参与了一个项目&#xff0c;该项目的报告流程如下&#xff1a; 用户会要求举报 报告要求将被翻译成较小的部分 基于零件/节的类型的每个零件的报告将由报告生成器生成 组成报告的各个部分将重新组合成最终报告&#xff0c;并返…

ipad2018编写html,IT教程:ipad6是ipad2018吗

科技就如同电灯发出的光一样&#xff0c;点亮我们的世界&#xff0c;点亮我们的生活&#xff0c;这一段时间以来ipad6是ipad2018吗的消息络绎不绝是什么原因呢?接下来就让我们一起了解一下吧。大家好&#xff0c;我是智能客服时间君&#xff0c;上述问题将由我为大家进行解答。…

流的多层次分组

1.简介 使用Java 8流&#xff0c;可以很容易地根据不同的标准对对象集合进行分组。 在这篇文章中&#xff0c;我们将看到如何从简单的单级分组到更复杂的&#xff0c;涉及多个级分组的分组。 我们将使用两个类来表示我们要分组的对象&#xff1a;人和宠物。 人类 public cla…

冈仁波齐

昨日看了《冈仁波齐》&#xff0c;其实第一次听这部电影还是在网易云看到朴树的新歌《No Fear In My Heart》时知道有这样一部电影的&#xff1b; 抱着好奇心去看&#xff0c;发现这确实是一部不错的电影&#xff0c;具体好在哪里我也不是说得很清楚&#xff0c;只知道我在看电…

四川高职计算机二本线学校,全网首发!四川省本科二批次2019年对口高职投档录取线出炉...

原标题&#xff1a;全网首发&#xff01;四川省本科二批次2019年对口高职投档录取线出炉四川省2019年高校招生本科录取接近尾声&#xff0c;二本批次征集志愿于8月1日进行。与此同时&#xff0c;专科批相关录取工作也进入我们视野。四川省各高校2019年对口高职调档线我省高职院…

app engine_App Engine中的Google Services身份验证,第1部分

app engine这篇文章将说明如何构建一个简单的Google App Engine&#xff08;GAE&#xff09;Java应用程序&#xff0c;该应用程序可以针对Google进行身份验证&#xff0c;并利用Google的OAuth授权访问Google的API服务&#xff08;例如Google Docs&#xff09;。 此外&#xff0…

Angular最新教程-第六节编写响应式导航栏

这节课我们讲解如何使用bootstrap 4 编写响应式布局。 参考图我们还是参照Angular中文社区http://www.angularjs.cn/ 图中标注红色的部分&#xff0c;我自己不是很喜欢&#xff0c;所以做了一点小改动。 他这里也没有做响应式布局&#xff0c;所以样式就不抄他的&#xff0c…

计算机在智慧交通的应用论文,智能交通的毕业论文

智能交通的毕业论文智能运输系统的研究许多国家都投入了巨大的人力和物力,并成为继航空航天、军事领域之后高新技术应用最集中的领域。下面为大家分享了有关智能交通的论文&#xff0c;欢迎欣赏&#xff01;摘 要&#xff1a;八十年代以来&#xff0c;世界一些发达国家纷纷投入…