2021 06-12

.NET平台系列23:.NET Core/.NET5/.NET6 和 .NET Framework 的选择建议

系列目录    【已更新最新开发文章,点击查看详细】 有两种支持的.NET实现可用于生成服务器端应用: .NETFramework .NETCore/5+,包括.NETCore、.NET5及更高版本。 这两者共用许多相同的组件,你可在它们之间共享代码。但两者之间存在根本的差异,可根据需要实现的目标进行选择。本文介绍了在何种情况下进行选择。 在以下情况,对服务器应用程序使用.NETCore/5+: 用户有跨平台需求。 你正在以微服务为目标。 你正在

2021 06-12

CentOS:操作系统级监控及常用计数器解析

我相信有一些人看到这篇文章的标题肯定有种不想看的感觉,因为这样的内容实在被写得太多太多了。操作系统分析嘛,无非就是CPU使用率、I/O使用率、内存使用率、网络使用率等各种使用率的描述。 然而因为视角的不同,在性能测试和分析中,这始终是我们绕不过去的分析点。我们得知道什么时候才需要去分析操作系统,以及要分析操作系统的什么内容。 首先,我们前面在性能分析方法中提到,性能分析要有起点,通常情况下,这个起点就是响应时间、TPS等压力工具给出来的信息。 我们判断了有瓶颈之后,通过拆分响应时间就可以知道在哪

2021 06-12

IDA反汇编EXE添加一个启动时的消息框

IDA反汇编EXE添加一个启动时的消息框 上一篇文章介绍了用OD反汇编EXE添加一个启动时的消息框,这篇文章也是实现同样的效果,这边主要的思路还是将其反汇编得到汇编代码后,然后手动修改他的逻辑首先跳转到弹框区域再跳转回来去执行原来的代码,相关的工具有IDA,以及要修改的一个xp系统自带的扫雷软件。本来想着用OD做就可以了,然后同学告诉我IDA功能更多一些,我了解了一下确实更加方便我完成需求,但是网络上关于IDA相关的教程还是比较少,我也是折腾了好一阵子才完成了修改,而且我也觉得有必要记录一下对于

2021 06-12

Handler_read_*的总结

在分析一个SQL的性能好坏时,除了执行计划,另外一个常看的指标是"Handler_read_*"相关变量。 Handler_read_key Handler_read_first Handler_read_last Handler_read_next Handler_read_prev Handler_read_rnd Handler_read_rnd_next 这七个变量,官方文档也有讲解,但很多人看完后,还是一头雾水。 下面结合具体的示例,来看看这七个变量的具体含义和区别。  

2021 06-12

使用查找表的经典题

前言 大家好,我是来自「华为」的「程序员小熊」。清明假期到了,小熊给大家带来一道简单题,让大家放松放松。这道题也是各大厂的面试题,例如苹果、脸书、亚马逊和微软等等。 本文主要介绍通过「查找表」的策略来解答此题,同时也会介绍「双指针」中的「对撞指针」方法,供大家参考,希望对大家有所帮助。 两数之和         解题思路 在数组(「不一定有序」)中查找两个元素,使得「其和等于目标值」,求这两个元素的下标。最容易想到的方法是「暴力法」,只需要「枚举」数组中

2021 06-12

28.qt quick-ListView高仿微信好友列表和聊天列表

1.视图模型介绍  在Qml中、常见的View视图有: ListView:列表视图,视图中数据来自ListModel、XmlListModel或c++中继承自QAbstractItemModel或QAbstractListModel的自定义模型类 TableView: 和excel类似的视图 GridView:网格视图,类似于home菜单那样,排列着一个个app小图标 PathView:路径视图,可以根据用户自定义的path路径来显示不一样的视图效果 SwipeView:滑

2021 06-12

LongAdder源码阅读笔记

功能描述 LongAdder通过创建多个副本对象,解决了多线程使用CAS更新同一个对象造成的CPU阻塞,加快了对线程处理的速度。当多个线程同一时刻更新一个AtomicLong类型的变量时,只有一个线程能够更新成功,其他线程则更新失败,继续尝试更新。当使用LongAdder类型的变量时,由于副本数组的存在,线程不一定直接更新变量的本身而是更新副本数组,这样多线程请求的对象变多了,从而减少了更新时间,当需要使用变量值时,返回的值是基础变量的值加上数组内每一个副本的值的和。 源码解析 LongAdde

2021 06-12

Netty 框架学习 —— 传输

概述 流经网络的数据总是具有相同的类型:字节,这些字节如何传输主要取决于我们所说的网络传输。用户并不关心传输的细节,只在乎字节是否被可靠地发送和接收 如果使用Java网络编程,你会发现,某些时候当你需要支持高并发连接,随后你尝试将阻塞传输切换为非阻塞传输,那么你会因为这两种API的截然不同而遇到问题。Netty提供了一个通用的API,这使得转换更加简单。 传统的传输方式 这里介绍仅使用JDKAPI来实现应用程序的阻塞(OIO)和非阻塞版本(NIO) 阻塞网络编程如下: publicclass

2021 06-12

Java IO学习笔记三:MMAP与RandomAccessFile

作者:Grey 原文地址:JavaIO学习笔记三:MMAP与RandomAccessFile 关于RandomAccessFile 相较于前面提到的BufferedReader/Writer和FileReader/Writer 普通的Reader和Writer只能顺序读写数据,RandomAccessFile提供了一个独有的seek方法,可以修改文件内容的指针,从而可以方便读取和修改文件中的任意位置。示例: importjava.io.RandomAccessFile; importjava.n

2021 06-12

解放前端工程师——手把手教你开发自己的自定义列表和自定义表单系列之一缘起

>之前有序言章节<Vue中路由到一个公共组件,然后根据路径中是否存在文件动态加载组件>,已经是一个雏形了。而现在,重新梳理下,我们要做的是让前端工程师不用上班了,哈哈,这么贴心的后端哪里找? 1、终极需求 产品经理A:“经常有些需求,并不是那么复杂,可能仅仅是增删改查,做些验证,为啥总要时间开发?” 后端甩锅王:“我开发很快的,但是!每次做需求的时候,总需要前端童鞋的协助,他们总是很忙~~~” 产品经理A:"既然都是类似代码,那有没有可能让开发的童鞋歇会呢?" 后端甩锅王心里一