zoukankan      html  css  js  c++  java
  • C# 反射性能测试

    1. 反射序列化与动态编译序列化。

    比较结果:

    ------ Test started: Assembly: Pixysoft.Framework.Configurations.dll ------


    Begin CreateObjectUsingReflection

    Begin CreateObjectUsingReflection

    00:00:04.2031250


    Begin CreateObjectUsingReflection

    Begin CreateObjectUsingReflection

    00:00:07.8593750


    Begin CreateObjectUsingReflection

    Begin CreateObjectUsingReflection

    00:00:07.2187500



    1 passed, 0 failed, 0 skipped, took 19.36 seconds (Ad hoc).

    使用c#提供的序列化最快,而反射序列化和动态编译序列化差不多。证明了反射获取数据在序列化中的比重并不大。

    ------------------------------

    2. 反射序列化与完全动态建立序列化适配器比较

    所谓建立序列化适配器,就是针对不同的对象,内存建立一个针对的获取数据的对象,这样就不需要通过反射获取属性,而是等效于直接获取。

    ------ Test started: Assembly: Pixysoft.Framework.Configurations.dll ------


    Begin CreateObjectUsingReflection

    Begin CreateObjectUsingReflection

    00:00:04.1406250


    Begin CreateObjectUsingReflection

    Begin CreateObjectUsingReflection

    00:00:08


    Begin CreateObjectUsingReflection

    Begin CreateObjectUsingReflection

    00:00:07.5468750


    Begin CreateObjectUsingReflection

    Begin CreateObjectUsingReflection

    00:00:01.1250000



    1 passed, 0 failed, 0 skipped, took 20.91 seconds (Ad hoc).


    可见如果是直接获取值,速度最快。 提升大概4倍(50000次循环。)


    ----------------------

    3. 比较IMessageSInk和直接获取数据性能。

    循环10w次,结果是:

     Begin CreateObjectUsingReflection

    00:00:11.2187500


    Begin CreateObjectUsingReflection

    Begin CreateObjectUsingReflection

    00:00:00.0156250


    提升了接近1000倍。。。。晕倒了。

  • 相关阅读:
    IE8中li添加float属性,中英数字混合BUG
    jQuery ajax get与post后台交互中的奥秘
    BZOJ 4816 数字表格
    BZOJ 1598 牛跑步
    BZOJ 4077 Messenger
    相关分析 BZOJ 4821
    Crash的数字表格 BZOJ 2154 / jzptab BZOJ 2693
    回文串 BZOJ 3676
    古代猪文 BZOJ 1951
    树上的路径 BZOJ 3784
  • 原文地址:https://www.cnblogs.com/zc22/p/1748754.html
Copyright © 2011-2022 走看看