.Net Framework

【基准测试】BenchmarkDotNet介绍

你说的曾经没有我的故事 提交于 2020-08-17 20:58:21
BenchmarkDotNet 概述 BenchmarkDotNet helps you to transform methods into benchmarks, track their performance, and share reproducible measurement experiments. It's no harder than writing unit tests 提取几个关键字(其实是只认识那几个英文单词) 将方法转换基准测试 跟踪性能 可重复实验 不必单元测试难 说白了,就是代码的性能测试,通常是用来比较两段代码/方法,或者在不同平台上的执行效果。 BenchmarkDotNet 快速入门 添加包 dotnet add package BenchmarkDotNet 添加需要基准测试的方法(这里我准备两个排序算法,快速排序 && 堆排序) [Benchmark] [Arguments(new int[] { 3, 1, 10, 9, 6, 2, 5, 7, 8, 4 })] public void QuickSort(int[] nums) => Demo.BenchmarkDotNet.QuickSort.Sort(nums); [Benchmark] [Arguments(new int[] { 3, 1, 10, 9, 6, 2, 5, 7, 8,

Expression<Func<TObject, bool>>与Func<TObject, bool>的区别

六月ゝ 毕业季﹏ 提交于 2020-08-17 20:09:28
Func<TObject, bool>是委托(delegate) Expression<Func<TObject, bool>>是表达式比如: Expression编译后就会变成delegate,才能运行。 Expression<Func<int, bool>> ex = x=>x < 100; Func<int, bool> func = ex.Compile(); 然后你就可以调用func: func(5) //-返回 true func(200) //- 返回 false 而表达式是不能直接调用的。 1 2 3 4 5 6 7 8 9 10 11 12 案例:不正确的查询代码造成的数据库全表查询。 //错误的代码 Func<QuestionFeed, bool > predicate = null ; if (type == 1) { predicate = f => f.FeedID == id && f.IsActive == true ; } else { predicate = f => f.FeedID == id; } //_questionFeedRepository.Entities的类型为IQueryable<QuestionFeed> _questionFeedRepository.Entities.Where(predicate);

9个典型的开发者关系面试题

只愿长相守 提交于 2020-08-17 18:49:21
越来越多的科技公司正在从传统的企业销售思路转变为以开发者至上的思路来推广产品。因为开发者不喜欢这类销售方式,所以电话销售和演示将不起作用。 相反,平台需要采用类似于消费者可能采用手游或电商应用的方式。 但是,开发者也不太可能接受那些游戏和电商应用上的那些Facebook广告。 启动开发人员关系计划,可以推动开发者的使用并建立起更有效的关系,但是由于开发人员关系是一个崭新的角色,所需的技能和责任相比销售和工程等已经成熟的角色来说更加模糊。 本文概述了招聘开发者关系经理时应注意的事项。有关开发人员关系的概述,可以先了解一下什么是开发者关系。 因为开发者关系对于任何与开发者社区互动的人来说都是一个包罗万象的角色,所以在面试任何候选人之前,你应该列出这个角色的关键目标。一些开发者关系的角色侧重于社区参与和开发者宣传。 他们的主要目标是提高产品认知度,这要求他们在会议上发言,扩大自身影响力,并参与社交社区(如Twitter或Reddit)互动。 其他一些开发者关系的角色更专注于产品管理和开发者经验。他们的主要目标是平台的采用和使用,这要求他们通过迭代的方式完成用户引导、文档与公共的API/SDK。 无论扮演那种角色,开发者关系经理都需要清晰地沟通,并深入浅出地把深奥的技术主题表达出来,以便开发者轻松的理解。很多时候,开发者关系是公司线上线下的形象代言人。 | 1.

社群运营:高质量社群必备三要素

走远了吗. 提交于 2020-08-17 18:34:08
分享人:小牛妈妈 亲爱的来自 千聊 直播间的、来自天南海北的知识网红大咖、同学们,大家好。我是小牛妈妈, 居住在深圳的东北人。日记星球创始人,北京师范大学英语教育硕士,擅长个人 ip 打造, 高质量社群打造,独创 21 天自媒 写作 训练营,108 天朋友圈专家养成特训营,52 周记训练 营。 今天的正式分享之前首先非常感谢千聊直播间能够让我们相识在此。感恩遇见大家,感谢千 聊让我们相逢,我始终相信一句话,在你生命中出现的每个人都是有原因的。 今天我给大家分享高质量社群必备十要素,是我过去十年的经验的总结,希望能够给我们支 持行业从业者一点启发。 我们知道 社群裂变 很重要,但是裂变以后如何维护社群,让它为我们创造源源不断的价值, 同样也很重要。因为时间关系,今天重点分享三点,我觉得是我发现很多朋友都忽略的这三 点。 一、 仪式感 你会发现重要的场合才会有仪式,例如婚礼,过年,过节等。很多人在打造社群的时候,可 能在仪式感方面有所忽略,那我们来看一下仪式感在打造社群中到底扮演一个什么样的角 色。我说一下我们日记星球在打造社群的过程中,我们的仪式感是怎么设计的。 在每个学员付费入群,首先有个欢迎仪式,会让他感觉到好隆重的感觉,形成了一种文化。 其次就是我们每一期开学的时候会有隆重的开学典礼,会有非常系统的一个流程。然后我们 在毕业的时候二十一天结束,我们是有毕业典礼的。

阿里短信回执.net sdk的bug导致生产服务cpu 100%排查

拥有回忆 提交于 2020-08-17 18:24:18
一:背景 1. 讲故事 去年阿里聚石塔上的所有isv短信通道全部对接阿里通信,我们就做了对接改造,使用阿里提供的 .net sdk 。 网址: https://help.aliyun.com/document_detail/114480.html 同事当时使用的是 ons-.net v1.1.3 版本,程序上线后若干天就会有一次程序崩溃现象,当时也没特别在意,以为是自己代码或者环境出了什么问题,索性就加了一个检测程序,如果检测到sdk程序退出就自动重启,就这样先糊弄着,直到有一天服务器告警,那个程序CPU居然飙到100%,服务器可是16核128G的哦。。。 二:分析问题 1. 抓dump文件 情况比较紧急,马上给程序发送Ctrl+C命令让程序退出,结果又退出不了,奇葩。。。为了分析问题抓了一个dump下来,然后强制kill掉程序。 2. 查看线程池以及各个线程正在做什么? 0:000> !tp CPU utilization: 100% Worker Thread: Total: 0 Running: 0 Idle: 0 MaxLimit: 32767 MinLimit: 16 Work Request in Queue: 0 -------------------------------------- Number of Timers: 1 -------------------

浅析PowerShell攻击的检测与防御

☆樱花仙子☆ 提交于 2020-08-17 18:21:58
PowerShell是微软为Windows平台制作的新一代命令行操作环境。和传统的命令行环境相比,PowerShell的功能更加强大,使用方式也非常灵活。但这些新特性给用户和系统运维人员带来便捷的同时,也存在很大的安全风险。美国赛门铁克公司发布的一份报告指出,该公司在2016年分析的49127个PowerShell脚本样本中,有95. 4%的样本是恶意的。腾讯公司发布的2019年度企业安全报告也指出,在被恶意利用的系统组件中,利用PowerShell组件实现远程下载占比达90%。敌对势力在近年来对我国发起的网络攻击中,PowerShell恶意脚本也成为经常使用的攻击手段之一。本文将在介绍PowerShell的功能特点和安全机制的基础上,概述部分安全机制绕过方法,并提出针对PowerShell攻击的检测和防御方法。 一、PowerShell简介 从Windows 95正式脱离DOS系统、成为可独立运行的操作系统到现在,微软在各版Windows系统中都保留了命令行窗口,即“命令提示符”,用于兼容DOS程序、便于用户执行命令操作。随着技术的演进,功能有限的“命令提示符”已经不能满足运维需求。为此,微软于2006年发布了新一代命令行环境,即PowerShell1.0。从Windows7和Windows Server2008 R2开始,微软正式将PowerShell集成到系统中

性能碾压 POI !利用模板语法快速生成 Excel 报表

半城伤御伤魂 提交于 2020-08-17 17:12:42
本期讲师:刘鹏 GcExcel项目组,核心开发者 Hello,大家好,本期葡萄城技术公开课,将由我来为大家带来《性能碾压 POI !利用模板语法快速生成 Excel 报表》的技术分享。 本期课程,我们将借助 服务端表格组件GcExcel 的模板语法来完成Excel报表的生成,通过使用简单的语法标记,可以在不借助任何第三方组件的情况下,结合数据源,自动化地生成Excel模板文件。 目前,GcExcel可以生成的文件格式包括 XLSX、PDF、SSJSON 以及 HTML。在公开课上,我将详细介绍GcExcel 的模板功能,并教大家如何使用模板生成Excel报表,欢迎大家预约本期公开课,7月10日 下午14:00,期待您的准时收看。 免费预约地址: https://live.vhall.com/120821085 GcExcel 的模板功能简介 GcExcel 的模板功能是一个高级功能,它提供了一组标记,使用户可以通过简单的语法,快速制作出一个Excel模板文件。然后,结合数据源,自动化地生成文件。 要使用这个功能,请前往GcExcel产品官网下载试用最新版本。 工作机制: 首先,我们需要准备一个模板文件(不限于Excel文件,也可以是GcExcel的模板实例) 有了模板文件,我们就可以结合数据源和GcExcel的模板引擎,实现自动化生成模板文件的功能,从而避免了手动输入大量数据的工作

PHP 闭包那点事儿

余生颓废 提交于 2020-08-17 17:07:31
匿名函数 匿名函数,也叫闭包函数,说白了就是“没有名字的函数”,和一般函数结构一样,只是少了函数名以及最后需要加上分号 ; 。 注:理论上讲闭包和匿名函数是不同的概念,不过PHP将其视作相同的概念。 $func = function() { echo 'Hello World' . PHP_EOL; }; $func(); 匿名函数和普通函数的区分有: 匿名函数也可以作为变量的值来使用。 匿名函数可以从父作用域继承变量,而这个父作用域是定义该闭包的函数(不一定是调用它的函数)。 $message = 'hello'; $example = function () use ($message) { return $message; }; $message = 'world'; echo $example(); 输出:hello 注意:必须使用 use 关键字将变量传递进去才行,具体见 官方文档 。 闭包类 定义一个闭包函数,其实就是实例化一个闭包类( Closure )对象: $func = function() { echo 'hello world' . PHP_EOL; }; var_dump($func); 输出: object(Closure)#1 (0) { } 类摘要: Closure { __construct ( void ) public static

[原创][开源] SunnyUI.Net 主题

半世苍凉 提交于 2020-08-17 16:50:36
SunnyUI.Net, 基于 C# .Net WinForm 开源控件库、工具类库、扩展类库、多页面开发框架 Blog: https://www.cnblogs.com/yhuse Gitee: https://gitee.com/yhuse/SunnyUI GitHub: https://github.com/yhuse/SunnyUI 帮助文档目录: https://www.cnblogs.com/yhuse/p/SunnyUI_Menu.html 欢迎交流,QQ群: 56829229 (SunnyUI技术交流群) 主题 1、Color 色彩 SunnyUI为了避免视觉传达差异,使用一套特定的调色板来规定颜色,为你所搭建的产品提供一致的外观视觉感受。主要颜色参照Element( https://element.eleme.cn/ ) 主色 SunnyUI主要品牌颜色是鲜艳、友好的蓝色。 辅助色 除了主色外的场景色,需要在不同的场景中使用(例如红色表示危险的操作)。 中性色 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 2、Rect边框 我们对边框进行统一规范,可用于按钮、卡片、弹窗等组件里。 主要属性如下: RectColor:边框颜色 RectDisableColor:控件不可用时边框颜色 RectSides:边框显示方向 无:不显示边框 全部