码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 一个更好用的.NET Core程序瘦身器,减小程序尺寸到1/3


    一、为什么要开发.NET Core程序瘦身器?

      .NET Core具有【剪裁未使用的代码】的功能,但是由于它是使用静态分析来实现的,因此它的剪裁效果并不是最优的。它有如下两个缺点:

    1. 不支持Windows Forms和WPF,而对于程序剪裁功能需求最强烈的其实反而是桌面程序的开发者。
    2. 无法删除运行时没有被使用的程序集。比如,我们的程序中使用了A程序集,A程序又引用了B、C两个程序集,A程序集中只有M1方法使用了B程序集,而A程序集中只有M2方法使用了C程序集。我们的程序中只调用了A中的M1方法,而从未调用A中的M2方法。虽然C程序集没有被我们调用过,但是由于【剪裁未使用的代码】功能只是做静态的引用检查,因此C程序集仍然不会被剪裁掉。
    3. 无法很好地支持反射。由于它是使用静态分析来实现的,因此它可能会剪裁掉运行时才会被通过反射加载的程序集。

       

    因此我开发了一个用来对.NET Core程序进行瘦身的应用程序,它则可以解决上面提到的.NET Core的【剪裁未使用的代码】问题,它支持Windows Forms和WPF ,它会在运行时分析程序加载的程序集,从而得知哪些程序集没有被使用,因此它不仅 能删掉更多没有被使用的程序集,而且能天然地 支持反射 。

    二、程序剪裁效果对比:

     

    三、下载地址
    获取项目开源地址和详细用法请访问

    https://github.com/yangzhongke/Zack.DotNetTrimmer/

     

    四、原理分析

    微软为.NET Core提供的Diagnostics库可以获取.NET Core运行时的信息,比如程序加载的程序集、TCP通讯、IO操作等,它可以获取我们能够想到的所有运行时信息。我的这个程序就是使用DiagnosticsClient检查.NET Core程序运行中加载的所有的程序集,这样就知道哪些程序集没有被使用了。

  • 相关阅读:
    (Java版)密码加密自从上次张三密码变复杂后, 再也没有被盗过号但他觉得密码还是不够复杂, 于是又进行了二次加密然后..他忘记二次加密后的密码了
    876. Middle of the Linked List
    计算机网络——数据链路层介质访问控制
    案例分析 丨湖仓一体助力保险企业数据战略转型升级
    深入理解 Srping IOC
    GPT4 Plugins 插件 WebPilot 生成抖音文案
    HTML5+CSS3+JS小实例:仿优酷视频轮播图
    C高级Linux指令和shell脚本
    postgis 2.5 pgr_fromAtoB
    计算机视觉40例之案例12手写数字识别
  • 原文地址:https://www.cnblogs.com/rupeng/p/15981731.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号