benchmark(go语言测试分析) benchmark测试(以字符串拼接为例)1、首先实现拼接字符串拼接函数测试该用例参数说明:1、属性 b.N 表示这个用例需要运行的次数2、BenchmarkFib-8 中的 -8 即 GOMAXPROCS,默认等于 CPU 核数。可以通过 -cpu 参数改变 GOMAXPROCS,-cpu 支持传入一个列表作为参数,例如:3、第二列参数指的是用例执行的次数 ,第三列指的是没次花费时间,第四列指的是分配多少内存,第五列指的是分配了几次内存由上面的结论可知......
对象相等判断 == 和 equals 的区别是什么== : 它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同 一个对象。(基本数据类型 == 比较的是值,引用数据类型 == 比较的是内存地址)equals() : 它的作用也是判断两个对象是否相等。但它一般有两种使用情况: 情况1:类没有覆盖 equals() 方法。则通过equals() 比较该类的两个对象时, 等价于通过“==”比较这两个对象。情况2:类覆盖了 equals() 方法。一般,我们都覆盖 equals() 方法来两个对象 的内
数据库优化 代码逻辑方面1、尽量不要在数据库做运算;复杂运算移动到程序断CPU;尽可能简单应用MySQL举反例:md5/Order by Rand()2、控制表单数据量一年内的表单数据量预估:纯INT不超过1000W; 含CHAR不超过500W合理分表不超载:USERID、DATE、AREA…建议单库不超过300-400个表3、保持表单身段苗条表字段数少而精:IO高效;全表遍历;表修复快;提高并发;alter table快4、拒绝3B字段方面索引建立方面SQL方面..
RabbitMQ 原理相关 一、为什么使用RabbitMqRabbitMq是一个实现了AMQP(advanced Message Queuing Protocol)高级消息队列协议的消息队列服务,用erlang语言实现可靠性,RabbitMQ的持久化支持,保证消息的稳定性·;高并发高可用,RabbitMQ使用了Erlang开发语言,Erlang是为电话交换机开放的语言,本身具有高并发的优势集群部署简单,(Erlang功劳)使用频率较高二、RabbitMq工作机制生产者:消息的创建者,负责创建和推动数据到消息服务器;
Linux ps命令 1、ps命令的使用ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义-A 列出所有的进程-w 显示加宽可以显示较多的资讯-au 显示较详细的资讯-aux 显示所有包含其他使用者的行程2、查找指定进程格式:ps -ef | grep 进程关键字例如显示 php 的进程:ps -ef | grep php显示进程信息:ps -A显示指定用户信息ps -u root //显示root进程用户信息显示所有进程信息,连同命令行ps -ef //显示所有命令,连带命令行2、
数据库基础(Mysql) 1、Mysql数据库索引设置索引分类:(1)普通索引(Normal):一般来讲对于普通的查询想要提升在大量数据中的查询可以建立普通索引(2)Unique 唯一索引表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique。约束唯一标识数据库表中的每一条记录,即在单表中不能用每条记录是唯一的(例如身份证就是唯一的),Unique(要求列唯一)和Primary Key(primary key = unique + not null 列唯一)约束均为列或列集合
CountDownLatch记录详细文章推荐 1、文章一:https://www.jianshu.com/p/1284760159022、文章二:https://blog.csdn.net/hbtj_1216/article/details/109655995
AQS原理 一、AQS(AbstractQueuedSynchronizer)AQS概念:Java的并发工具包JUC下locks包内的一个类。主要思想:FIFO(先进先出队列)实现算法:CLH队列算法底层数据结构:双项链表二、CLH锁CLH是一种基于单向链表的高性能、公平的自旋锁。1、申请加锁的线程通过前驱节点的变量进行自旋。2、在前置节点解锁后,当前节点会结束自旋,并进行加锁。3、在SMP架构下,CLH更具有优势。在NUMA架构下,如果当前节点与前驱节点不在同一CPU模块下,跨CPU模块会带来额
开发记录:一般通用的基础的父类(业务对象继承的基础)必备字段 1一般基础类必备字段//创建人String createBy//更新人String updateBy//创建时间Date createTime//更新时间Date updateTime//搜索值(模糊搜索时候用到)String searchContent//备注String remark2一般继承的子类用到(逻辑删除)会加一个标记删除字段Integer deFlag(deleteFlag的意思)3导出功能时候字段用@Excel(name = “仓库地点”,sort = 9)
虚拟机参数 jconsole:终端查看图形化内存、线程、类信息使用情况jps能够查看当前正在执行的进程的pidjps -l查看当前运行主类jps -m 查看当前运行的加载的参数jps -v查看虚拟机参数jps -mlv 查看所有参数jstat -gcutil pid(ps:pid当前进程id)看到内存占用情况;垃圾回收情况(S0 S1 E O…)(后面加个参数表示 多长时间执行一次)jinfo pid可以查看虚拟机使用的一些参数jmap 看一些堆内存的信息(可以下载下来)jstack -F pid
单点登录SSO 为什么要实现单点登录?我们希望在分布式开发的过程中,当用户在登录任何一个子系统的时候,在一定时间范围内,相关联的系统在一定时间范围内可实现免登录。1、在单体架构下:步骤:(cookie和session)假如客端对模块进行访问,对某一功能接口进行访问(即对受保护的资源进行访问)1、客户端会将当前的浏览器里以cookie的方式保存一个对应访问地址的sessionId,携带去服务端请求2、首次登陆服务端检测不到会返回一个登录界面3、输入用户名密码4、服务端会和DB进行一个校验5、通过校验服务端会
多线程如何保证顺序执行:join() Thread中,join()方法的作用是调用线程等待该线程完成后,才能继续用下运行有T1,T2,T3,怎样保证他们按照T1,T2,T3顺序执行public static void main(String[] args) throws InterruptedException { System.out.println("main start"); Thread t1 = new Thread(new Worker("thread-1")); t1.