相关疑难解决方法(0)

API分页最佳实践

我希望通过我正在构建的分页API来处理一个奇怪的边缘情况.

像许多API一样,这个API分散了很多结果.如果您查询/ foos,您将获得100个结果(即foo#1-100),以及指向/ foos?page = 2的链接,该链接应返回foo#101-200.

不幸的是,如果在API使用者进行下一次查询之前从数据集中删除了foo#10,/ foos?page = 2将偏移100并返回foos#102-201.

对于试图吸引所有泡沫的API消费者而言,这是一个问题 - 他们不会收到foo#101.

处理这个问题的最佳做法是什么?我们希望尽可能轻量级(即避免处理API请求的会话).其他API的例子将不胜感激!

rest pagination api-design

275
推荐指数
9
解决办法
15万
查看次数

针对Java的堆分析工具的建议?

列出您最喜欢的堆分析工具(例如jprofiler,jmap,...).让我们为每个答案保留一个工具,并列出每个工具的优缺点.

java memory heap profiling

55
推荐指数
4
解决办法
8万
查看次数

VirtualFlow 中的 JavaFX 内存泄漏?

我在 VirtualFlow 中遇到了一种行为,不确定这是否是内存泄漏或者是否是这样设计的。

在 TableView 中,我希望当不使用 TableRow 实例时,它们应该能够被垃圾收集。但是,当我按照以下步骤操作时:

步骤#1:我打开了一个带有 TableView 的阶段,其中没有数据。我检查了内存中是否有 TableRow 的实时实例,但没有看到任何实例(这是我所期望的)。

步骤#2:我用一些数据填充了 TableView,这会根据所需的空间生成 TableRows。在我的场景中,假设它生成了 38 个 TableRow 对象实例。

步骤#3:我清除了 TableView 中的项目并显示占位符消息。当我检查 TableRow 实例时(执行多次 GC 后),它仍然在 VirtualFlow 的cellsArrayLinkedlist 中强保留了 TableRow 的所有 38 个引用,如下图所示:

在此输入图像描述

这是内存泄漏还是已经考虑到的预期行为?

这是我用来检查上述场景的代码:

import javafx.application.Application;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class TableViewMemoryLeakDemo extends Application {

    public …
Run Code Online (Sandbox Code Playgroud)

javafx

2
推荐指数
1
解决办法
136
查看次数

标签 统计

api-design ×1

heap ×1

java ×1

javafx ×1

memory ×1

pagination ×1

profiling ×1

rest ×1