最近,我重写了 Wicket 的DefaultPageStore方法serializePage和deserializePage并通过日志记录来增强它们以跟踪在它们中花费的时间。
我发现从未调用deserializePage,因为始终从SessionEntry#sessionCache检索实际页面。
我怀疑这是由于我的页面设置setVersionPagesByDefault(false)造成的情况,即只有当前版本的页面在SessionEntry中序列化,然后(不必要地)在DefaultPageStore中从不反序列化。
如果这个怀疑是正确的,那么我可以将方法serializePage设置为无操作 a 并跳过序列化,目前页面 X 需要 3 或 7 秒 (DeflatedJavaSerializer)。
到目前为止,我没有发现任何副作用,所以我的问题是:这安全吗?如果不是,那为什么?
我认为这只是临时解决方案,直到我能够将数据从页面移动到适当的缓存。