Java 8 parallelStream 在大批量小任务上的性能陷阱

tl;dr

Java 8 的 parallelStream 在运行大量的短任务(短时间执行的任务)之后会变成单线程运行,这是 parallelStream 自带的性能优化功能。但是在短任务和长任务交替执行时,这种优化会显著拖慢运行速度。

Mount volume to a docker container running in a docker container

一个匪夷所思的需求

有时候我们需要在 docker container 里面运行一个 docker container(虽然都是运行在宿主机的 docker daemon 里的),这个其实使用 -v /var/run/docker.sock:/var/run/docker.sock 就能做到了。本文的重点是下面这种情况:

在 .Net Core 中使用 Xunit 进行单元测试的奇葩问题

假如在单元测试的代码(包括测试代码及测试代码调用的任何代码)中 Debug.Assert 的结果为 false,Xunit 会直接崩溃,并打印出如下的错误信息:

在 Nuxt 中修改 uglifyjs 的配置

假如需要修改 Nuxt 中 UglifyJs 的配置的话,可以直接在 nuxt.config.jsbuild 中添加一个 uglify 字段。如果其值是一个对象的话,对象的内容会跟 nuxt 默认的 uglify 配置进行合并。如果值是 false 的话,就不会使用 uglify plugin。

npm5中本地间模块引用的最好方式(附带引用方法总结)

前言

对于某些比较大的项目,我们可能会希望将其划分成多个模块:

使用 Travis 和 SonarCloud(SonarAnalyzer) 对 .Net Core 项目进行分析

最近 SonarC# 加上了对 .Net Core 的支持,而且可以在 Linux 上运行 C# 的分析了。这样的话,就可以用 Travis-CI 对代码进行持续分析,并且自动将结果上传到 SonarCloud 上。要启用这个功能,只需要在 .travis.yml 里面加上 SonarCloud Addon(如果你用的话),然后在 install 字段里面下载sonar-scanner-msbuild的压缩包并运行即可。代码:

Vim 在插入模式下粘贴的方法

有时候我们需要在Vim的 command line (命令窗口、ex命令)进行粘贴,比如:

ABP 通知系统数据表结构及源码分析

前言

这篇文章接着 在 ABP 2.3 和 Vue 单页应用中的踩坑总结 来写。

GraphQL:BFF架构资料 (兼谈合并多个 Schema 的方式)

最近正打算做 http://new.npuacm.info 的后端,研究了一下 GraphQL。在这里记录一下我所了解到的东西。我现在还没开始写后端,所以这里能写的也不多,等到网站做完之后,我可能还会补充一些东西。

在 ABP 2.3 和 Vue 单页应用中的踩坑总结

前言

http://acm.nwpu.edu.cn 开发结束已经过去半年多了,我最近也放弃了考研的打算,现在也算是有空写博客了_(:3」∠)_。我就在这一篇博文中总结一下之前踩过的坑。注意,这篇博文中的后端技术仅限于 Asp.Net Core 1.1 及 AspNetBoilerplate 2.3.0。我不保证这里的解决方案在现在的 .net core 2.0 和 ABP 3.X.X 里还能一样工作。另外,直接写在ABP、VUE文档里或者用Google能直接查到的解决方案我也是懒得在这里再写一遍的。