zoukankan      html  css  js  c++  java
  • CSLA学习之数据遍历优化——静态变量使用(单例实现)

          最近在用CSLA做数据管理的功能。有个功能需要查看一个表b1,但一些字段的信息要从表b2中获取,这就需要每次获取b1的一行值就需要

    遍历b2的所有集合。刚开始的时候是这样写的:
            /// <summary>
            /// 获取测点名称和类别
            /// </summary>
            /// <param name="name">测点名称</param>
            private void SetNameAndType(string name)
            {
                //设置设备名和型号
                if (name != null)
                {
                    MeasurePntList meaLst=MeasurePntList.Get();
                    foreach (MeasurePnt temp in meaLst)
                    {
                        if (temp.Name == name)
                        {
                            _measureType = temp.MeasureType;
                            _PnId = temp.PnId;
                        }
                    }
                }
    这就导致每次都需要调用MeasurePntList.Get()方法来取值。效率很低,最后我改成如下:

    在MeasurePntList 中定义一个静态实例,相当于只取一次,只有有变化的时候才会重新获取:
    private static MeasurePntList _instance = null;
            /// <summary>
            /// 静态变量
            /// </summary>
            public static MeasurePntList Instance
            {
                get
                {
                    if (_instance == null)
                        _instance = Get();
                    return _instance;
                }
            }
    之后把上面代码直接改为:
             /// <summary>
            /// 获取测点名称和类别
            /// </summary>
            /// <param name="name">测点名称</param>
            private void SetNameAndType(string name)
            {
                //设置设备名和型号
                if (name != null)
                {
                    //调用静态变量,以免重复获取大量数据,影像数

    据访问速度
                    foreach (MeasurePnt temp in

    MeasurePntList.Instance)
                    {
                        if (temp.Name == name)
                        {
                            _measureType = temp.MeasureType;
                            _PnId = temp.PnId;
                        }
                    }
                }
            }
    这样就大大提高了效率……

  • 相关阅读:
    云架构系统如何做性能分析?| 实战干货
    1024 程序员日,聊聊升职加薪与职业发展!
    测试面试题集锦(三)| 计算机网络和数据库篇(附答案)
    在线沙龙 | 前端测试技术创新与实践
    测试开发系列课程学员打卡听课细则
    这 5 款实用性能测试工具,你会如何选择?
    618 年中大促!Python 自动化测试训练营立减 1000 元!送接口测试实战课!
    美人
    栀子花开
    朋友别哭
  • 原文地址:https://www.cnblogs.com/wylaok/p/2794805.html
Copyright © 2011-2022 走看看