摘要:
在我们的认知里,调用parent.Wait() 时,会等待它的子线程都结束,才会向下执行。 比如,一个线程A有B、C两个子线程,A.Wait() 是等待 A、B、C都结束,才会向下执行。 然而,最近碰到的问题却跟我想的不一样。 问题表象 可以简化为,在父线程中,创建一个子线程。然后在外部等待父线程结 阅读全文
摘要:
1. 下载windbg并安装。 我下载的是 Windbg 6.12。注意,windbg分32位和64位,由分析环境的位数决定。我这里安装的是32位的。安装过程很简单,一路next就可以。 2. 准备被调试的程序。 新建一个C#控制台程序,使用如下代码。编译~ class Program { stat 阅读全文
摘要:
1. 限制每天只能提醒N次。 每次可以提醒M个人。 数据结构:HashSet,每次提醒,使用HIncr 对提醒次数+1,同时返回提醒了多少次。 阅读全文
摘要:
由于没想到合适的 Evaluation Stack 对应的中文,索性就不给它中文名了。 Evaluation Stack 是基于 MSIL 应用程序(C#、F#、VB.NET 语言应用)的关键结构,它是应用程序 和 内存之间的桥梁。 它跟普通的栈有一些关键性的区别。 你的应用程序 可以通过 使用 E 阅读全文
摘要:
之前分享过一篇如何做接口性能分析的文章,但是整个分析过程有点繁琐,需要写一个控制台程序调用被测接口,再预热、启动dottrace追踪,最后才能得到我们想要的性能分析报告。如果有办法一键生成性能分析报告,那就会省很多不必要的时间。这里我们就借助Jenkins自动化完成这一过程。 目标: 把Dottra 阅读全文
摘要:
C#里结构体是值类型,其局部变量的空间分配在栈上。很多同学喜欢用它,是因为它的存储密度高、分配和回收成本非常低。 但是前几天在查热点的时候,却碰到结构体的性能非常慢,甚至远低于把同样数据结构做成的引用类型。下文对这个问题做了些简化,方便大家理解。 代码分析 优化前的源代码示例: //结构体声明 pu 阅读全文
摘要:
准备业务代码和测试代码 新建一个.net framework类库,创建Calc.cs文件,添加如下代码: 新建一个UT项目,对Calc的方法添加测试 在VS中执行测试、并检查测试覆盖度,用颜色标记覆盖代码行 用命令行执行单元测试,并检查代码覆盖度。 分析:CodeCoverage analyze / 阅读全文
摘要:
背景: 在用Selenium做自动化测试的时候,默认ChromeDriver是会提示“Chrom正受到自动测试软件控制”的。如下图这样。但我们有些场景下,不希望这个提示出现。本文探索了几种语言去掉这个提示条的方法,希望对小伙伴有帮助。 1. Java ChromeOptions options = 阅读全文
摘要:
不熟悉代码的情况下做性能优化 阅读全文
摘要:
在我们对一个API站点进行微服务化的过程中,使用KONG网关可以实现以下几个效果: 1. 业务线无感知,其实内部已经被Kong转到其他站点上执行了,这对业务线特别友好。 2. 可以实现租户级/接口级灰度验证。(KONG的路由规则是根据URL判断的,因此需要URL上包含租户ID) 比如,原先是业务方直 阅读全文
摘要:
拆分对象简介: 公司的一款工作计划管理SaaS软件,2013年上线,单体架构。起初仅任务管理功能,发展到后来加上了账号身份权限、Feed流、日周月报、项目管理、计划管理、OKR、消息中心、打赏、贴标签、评价等等。常用租户数量1W+ 目前的问题: 1. 目前是3个团队共同维护,经常一个团队改点东西,需 阅读全文