我个人喜欢下面的选项1以保持可维护性,但我可以看到选项二让我获得更好的性能。选项三可能是完全垃圾。
1. ViewState["Calendar1.SelectionMode"] = Calendar1.SelectionMode;
2. ViewState["CSM"] = Calendar1.SelectionMode;
3. ViewState["Calendar1_SelectionMode"] = Calendar1.SelectionMode;
我是否应用旧学校的维护习惯?仅当物体数量很大时才重要吗?我看不到内部使用任何东西,只是一个非常有效的哈希。我已经阅读了加速页面加载的方法,但没有直接建议,因为这甚至是一个轻微的因素。所有文献都讨论的是使用紧凑类型,仅使用非默认值的值来填充数据库访问读取的视图状态。
答案 0 :(得分:7)
选项二可能会给你更好的表现,但差别非常小。如果您遇到性能问题,这将是我寻找瓶颈的最后一个地方。您是否在页面上进行了任何类型的分析?这就是我开始寻找的地方。
答案 1 :(得分:4)
键名成为viewstate隐藏字段的一部分。原油示例:
protected void Page_Load(object sender, EventArgs e)
{
// ViewState["a"] = 1;
// <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"
// value="/wEPDwUJNzgzNDMwNTMzDxYCHgFhAgFkZCdtAzza2+uuoGpYdGLBUdCkUGe7" />
// ViewState["this is a very very very very long key"] = 1;
// <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"
// value="/wEPDwUJNzgzNDMwNTMzDxYCHiZ0aGlzIGlzIGEgdmVyeSB2ZXJ5IHZlcnkgdmVyeSBsb25nIGtleQIBZGSmj9cou408+XXRLxCLKcEoLngriA==" />
}
底线:除非您存储大量密钥,否则可能不是问题。
答案 2 :(得分:1)
使用性能指标的答案实际上是肯定的,您放入ViewState的键的名称确实会影响加载特性。影响并不严重,并且看起来并不像线一样增长。
关键点似乎是120个物体。下一个统计差异出现在大约270个对象上。请注意我只改变了键的大小,并在Calendar.SelectionMode对象中保持推..我正在选择能够帮助我完成上述结论的答案。
基准决赛:
使用大键的效果是PAGELOAD TIME - 使用小键的PAGELOAD时间
结果精确到0.05秒,置信区间为99%。