【问题标题】:Mixed Write for GSONGSON 的混合写入
【发布时间】:2016-01-11 12:57:08
【问题描述】:

我正在使用 GSON 对象模型访问来构造 JSON,以用作 Jmeter 中我的 POST Web 服务调用的主体。

现在我经常遇到:GCC Out of memory exception,错误指向代码段=> gson.toJson(objectToSerialize)。 在过去的帖子中,建议将 gson 序列化与流式访问模型一起使用。

我当前的代码是这样做的:通过填充其变量来创建一个类的对象并将该类传递给 GSON 序列化程序,以字符串的形式取回构造的 JSON,然后我使用它们。

专家能否建议,有没有一种方法可以将流式访问模型集成到我的代码中,而无需进行大量返工。这会节省内存吗? PS:我查看了此链接中指定的混合写入示例,但无法解决如何通过传递类的一个对象来构造 JSON,就像我们在对象模型中所做的那样: https://sites.google.com/site/gson/streaming

谢谢!

【问题讨论】:

    标签: jmeter gson


    【解决方案1】:

    为什么不在 HTTP 请求采样器的“正文数据”模式中使用这些变量,例如:

    如果您的 JSON 有效负载很大,您可能需要修改 Java HEAP 大小,因为默认分配仅为 512MB,这可能不足以应对或多或少的大负载。如果您没有足够的可用 RAM 来适应 JSON 数据大小 * 虚拟用户数,您可能需要考虑 Distributed Testing

    另一个选项可能是您使用不是非常有效的脚本测试元素。建议使用 JSR223 Test Elements 和 Groovy 作为语言,因为其他选项的性能不佳。

    有关更多信息,请参阅Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For! 指南

    【讨论】:

    • 谢谢 Dmriti。我遇到了通过增加堆大小来克服的内存问题。但是我看到上述构建大型 JSON 的方法将内存驱动到接近 97% 并寻找一种以内存有效的方式构建它的方法并寻求最好的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    • 2015-07-27
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多