- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 protobuf 作为数据记录器的编码机制。远程客户端将通过 TCP 发送一条消息(在 protobuf 中编码),应用程序会将其写入磁盘。消息写入磁盘后,其唯一的内存引用将被删除,并将在适当的时候被垃圾收集。
由于我期待的消息量很大(特别“突发”),我正在尝试优化解决方案。
为了减少 GC,我想合并 protobuf POJO。假设我正在记录操作,并且我的 protobuf 定义为:
message Action {
required string user;
required long time;
required string action;
}
这会生成所需的代码,包括静态方法 Action.parseFrom(byte[])
,我用它从 TCP 套接字读入对象。每次调用此方法时,都会调用 PARSER.parsePartialFrom(...)
,这会为每条收到的消息创建一个新的 Action 对象。
我在 API 中看不到任何能够提供这些对象池的选项,这些对象可以重新用于循环 Action
POJO,除非我破解生成的代码并检查将其放入源代码管理中(我不愿意这样做)。
有什么建议吗?
我在客户端创建消息时也遇到类似的问题。每次调用 buildPartial()
都会创建一个新的 POJO。
最佳答案
Google 的官方 Java Protobuf 实现(我编写的)不支持这一点,因为它支持不变性作为设计质量。对于基于 JVM 的大型服务器,这通常效果很好,因为 GC 对于短期对象非常有效。
但是,这确实会给某些用例带来问题,尤其是在移动设备上。为此,许多人编写了替代的 Java Protobuf 实现,专门针对更受限的环境。也许其中之一适合您。列表在这里:
https://github.com/google/protobuf/blob/master/docs/third_party.md
关于java - 池化 Protobuf POJO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25138361/
Tomcat 6 下的 Servlets 101: 有人可以指点我对例如的最佳方式的一个很好的解释。在 servlet 启动时创建一个昂贵的 Foo 对象的集合,并将它们存储在我可以在处理每个请求时访
我想在我的网络中做最大池化,像这样: 我的网络是一维的(你可以认为上面的例子是一个句子有 6 个词,而每个词有 3 个嵌入)我不知道特征的长度(不是每个句子都有相同的长度),所以我不能' t 在 tf
关于SDL2的硬件加速纹理渲染,我有两个问题: 当使用SDL_Createtexture(...)时,当VRAM非常重要时,是否可以在系统RAM和VRAM之间自动合并/传输纹理?为了确保不会淹没VRA
我正在尝试通过池化 box2d 主体来生成 block ,我不知道 libgdx 池化是否适用于主体,但如果是,请有人解释我如何做到这一点以及我的代码有什么问题。 首先,我在单独的方法上创建了 Bod
我的主要目标是在静默或某种方式下池化一个httpclient,我想调用一个方法来给我一个httpclient...因为我认为它对于每个休息调用都使用资源,添加一个新的httpclient实例并且设置一
我有一个非常具体的应用程序架构问题。 我需要解析大量传入目的地,这些对象的解析是异步处理的,完成后需要将对象传递到下一阶段。 所以真正的问题归结为,处理大量 Future 对象的优雅方式是什么。 我是
我使用 protobuf 作为数据记录器的编码机制。远程客户端将通过 TCP 发送一条消息(在 protobuf 中编码),应用程序会将其写入磁盘。消息写入磁盘后,其唯一的内存引用将被删除,并将在适当
有些教程说使用 org.postgresql.ds.PGConnectionPoolDataSource 但有些教程说只是 org.postgresql.ds.PGSimpleDataSource..
我正在尝试在 this paper 中重新创建字符级 CNN并且在我需要创建 k-max 池化层的最后一步有点卡住,因为我使用的是 MXNet 但它没有这个。 An important differe
假设我必须在后台递归地迭代存储在树结构中的项目,并且我想使用线程池中的多个线程(每个“文件夹”节点一个线程)来遍历这棵树。我已经成功地使用 OmniThreadLibrary 提供的几种不同的低级和高
我想了解 timeToLive 属性是如何工作的? 这是当你从池中获取连接时,特意关闭连接并返回到池中的时间间隔? API 我希望使用持久连接的客户端每隔几秒关闭一次,这样对负载均衡器的请求每隔几秒就
我目前正在尝试使用 CloseableHttpClient 同时执行多个 HttpGet 请求。 我用谷歌搜索了如何做到这一点,答案是使用 PoolingHttpClientConnectionMan
我终于认输并寻求帮助。我想尽办法解决这个问题,但我似乎无能为力。 我正在与:VS2010 C#甲骨文 12cODP.Net 托管121012 我继承了一个同时使用托管和非托管数据访问 dll 的应用程
这是我看完Documents的理解: 池化,与许多其他数据库一样,我们只有一定数量的允许连接,所以你们都排好队等待空闲连接返回池中。 (连接在某种意义上就像一个 token ) 在任何给定时间,事件和
我有一个像 1x8x128x128 这样的 5D blob,并且我有一个能够处理我的 5D blob 的卷积层。当我想使用池层时,尽管它不起作用。如何将池层与 5D blob 一起使用? Check
我正在尝试实现一种使用 L2 池化的 CNN 架构。引用论文特别指出 L2 池化优于最大池化,因此我想在激活函数之后尝试 L2 池化。 但是,Tensorflow 似乎只提供了tf.nn.avg_po
我正在玩一款游戏,每 1-3 秒生成一个对象。该游戏对象包含一些用于渲染目的的资源和一个 Box2D 主体。问题是我不想创建数千个对象。相反,我想重用它们,重置其属性(位置、摩擦力等),而不是创建一个
将 Tomcat 与 MySQL 一起使用时,Tomcat 数据源配置中的 poolPreparedStatements 设置(我相信来自 DBCP)和 Connector/J 之间的关系是什么 ca
我们需要在 Java EE 应用程序中使用队列,并且由于它是一个基于云的应用程序(部署在 OpenShift Online 上),我们喜欢使用 amazon sqs。 如果我正确理解了 JMS/Jav
我是一名优秀的程序员,十分优秀!