- 博客(92)
- 收藏
- 关注
原创 idea设置JVM运行参数调优 体验优化
-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms256m -Xmx256m -Xss512k -XX:+UseConcMarkSweepGC添加完成后,点击apply ok就设置成功了,重启项目
2020-12-30 21:52:44 621
原创 SpringCloud与Dubbo的区别
1.SpringCloud与Dubbo的区别两者都是现在主流的微服务框架,但却存在不少差异:初始定位不同:SpringCloud定位为微服务架构下的一站式解决方案;Dubbo 是 SOA 时代的产物,它的关注点主要在于服务的调用和治理生态环境不同:SpringCloud依托于Spring平台,具备更加完善的生态体系;而Dubbo一开始只是做RPC远程调用,生态相对匮乏,现在逐渐丰富起来。调用方式:SpringCloud是采用Http协议做远程调用,接口一般是Rest风格,比较灵活;Dubbo是采用
2020-10-21 23:09:41 75550 7
原创 什么是回表,怎么减少回表的次数?
在存储的数据方面,主键(聚簇)索引的B+树的叶子节点直接就是我们要查询的整行数据了。而非主键(非聚簇)索引的叶子节点是主键的值。所以,在InnoDB 中,使用主键查询的时候,是效率更高的,因为这个过程不需要回表。在 InnoDB 里,索引B+ Tree的叶子节点存储了整行数据的是主键索引,也被称之为。而索引B+ Tree的叶子节点存储了主键的值的是非主键索引,也被称之为。等技术,我们也可以通过优化索引结构以及SQL语句减少回表的次数。
2024-10-31 15:33:44 343
原创 MySQL 的 select * 会用到事务吗?
虽然查询语句也会在事务的上下文中执行,但是由于没有进行任何修改操作,因此事务不会持有任何锁,并且在查询结束后立即提交,这种隐式事务通常被称为自动提交事务(autocommit)因此,InnoDB的所有操作都可以说是在事务的上下文中执行的,包括读取操作和修改操作。*,即使没有明确的开启事务语句InnoDB存储引擎也会为查询自动开启一个隐式事务。我们都知道,在InnoDB存储引擎中,所有的修改操作都必须在事务中进行的,这种普通的读取操作其实也会在事务的上下文中执行。
2024-10-31 15:30:04 483
原创 synchronized 的锁能降级吗?
*因为有一种特殊情况的"降级”,那就是重量级锁的Monitor对象在不再被任何线程持有时,被清理和回收的过程。我们知道,synchronized 是有锁升级的过程的,会从偏向锁升级到轻量级锁和重量级锁,那么synchronized的锁有降级的过程吗?以上,说的是 HotSpot,并不是所有虚拟机都这样,有的虚拟机还真支持从重量级锁降级到轻量级锁,比如JRocket 这个虚拟机。因为锁一旦升级为重量级锁,它将保持在这个状态,直到锁被完全释放。下面是关于JRocket 的锁的降级的说明(
2024-10-30 10:03:10 298
原创 CAS一定有自旋吗?
因为,CAS 操作一般都是在多线程并发访问时使用,如果直接阻塞线程,会导致性能下降,而采用自旋的方式可以让 CPU 空转一段时间,等待锁被释放,从而避免线程切换和阻塞的开销。但是,如果自旋时间过长或者线程数过多,就会占用过多的 CPU 资源,导致系统性能下降,因此在使用 CAS 操作时,需要根据实际情况进行适当的调整。通常情况下,CAS 操作都会采用自旋的方式,当 CAS 失败时,会重新尝试执行 CAS 操作,直到操作成功或达到最大重试次数为止。不一定,但是通常为了提高CAS的成功率,会考虑做自旋。
2024-10-30 09:45:41 144
原创 为什么按位与运算要比取模运算高效?
而取模运算涉及除法操作,而除法操作比加法、减法和按位运算要复杂得多。因为在许多处理器架构中,除法运算通过迭代或流水线等复杂机制实现,导致其执行时间较长。虽然现代编译器对取模运算也进行了一定的优化,但由于其底层实现的复杂性,优化效果不如按位与运算明显,并且由于其简单性,编译器可以轻松地优化按位与运算,编译器在生成机器代码时,按位运算直接映射到单个机器指令。
2024-10-29 09:53:30 482
原创 GPU和CPU区别?为什么挖矿、大模型都用GPU?
大模型的训练可以分解成许多小任务,这些任务可以在GPU的多个核心上同时进行,从而显著加快训练速度。GPU最初是为图形渲染和图像处理而设计的,因此其架构包含大量的小核心,适合并行处理。这些核心可以同时处理多个相似的任务,使其在某些计算任务中表现得比CPU更高效.它的架构设计旨在适应多种任务,具有较少的核心,但每个核心非常强大且灵活。GPU就像是一群臭皮匠,虽然没那么聪明,但是优势在于人多,能干很多重复性的劳动。GPU由于其并行处理能力,能够在挖矿过程中执行多个计算任务,从而提高挖矿效率。
2024-10-28 17:43:44 313
原创 什么是时间片
使用这些操作系统的“用户”是可以“同时”干多件事的,这已经是日常习惯了,并没觉得有什么特别。这个电话亭可以允许哪个用户进入打电话是有不同的策略的,不同的电话亭规定不同,有的电话享采用排队机制(FCFS)、有的优先分配给打电话时间最短的人(SPN)等。这样,给用户的感觉是他在同时的进行听歌和打游戏,实际上,在操作系统中,CPU是在游戏进程和音乐播放器进程之间来回切换执行的。不同的操作系统,在选择“用户”分配时间片的调度算法是不一样的,常用的有FCFS、轮转、SPN、SRTHRRN、反馈等。
2024-10-28 17:40:59 202
原创 ARP 与 RARP 的区别是什么?
ARP协议是一种广播协议,当一台主机需要知道另一台主机的MAC地址时,会在本地局域网上广播一个ARP请求包,所有主机都能收到这个请求包,但只有目标主机会响应这个请求,将自己的MAC地址发送回来。RARP协议则是将MAC地址转换为IP地址,也就是在启动时,需要知道自己的IP地址时,可以向网络中发送RARP请求,获取自己的IP地址。ARP协议用于将IP地址转换为MAC地址,也就是在通信时需要知道目标机器的MAC地址时,ARP协议可以用来查询目标机器的MAC地址。
2024-10-28 14:14:46 211
原创 ping的原理是什么?
在A主机上就会发送“echorequest”(回显请求)控制消息,主机B正确接收后即发回“echo reply"(回显应答)控制消息,通过对方回复的数据包来确定两台网络机器是否连接相通,时延是多少。它使用的ICMP协议是一个网络层协议,也就是说,ping是一个应用层直接使用网络层协议的例子。像我们常见的HTTP协议是依赖的传输层协议TCP/UDP,而传输层的协议再依赖网络层的IP协议。ping是用来探测本机与网络中另一主机之间是否可达的命令,如果两台主机之间ping不通,则表明这两台主机不能建立起连接。
2024-10-28 14:13:03 593
原创 路由器与交换机的区别是什么?
交换机转发所依据的对象是物理地址,也就是MAC地址,而路由器转发所依据的对象时网络地址,也就是IP地处。交换机主要用于组建局域网,而路由主要功能是将由交换机组好的局域网相互连接起来,或者接入互联网。在OSI七层模型中,交换机主要工作在数据链路层(第二层),路由器工作在网络层(第三层)。
2024-10-28 14:10:50 419
原创 Maven能解决什么问题?为什么要用?
如果没有maven,我们在开发一个应用的时候,需要自己先确定需要引入哪些第三方的jar包,并且要去找到这些jar包,把他们导入到项目中,而且最痛苦的时候各个jar包之间的兼容性和冲突的问题。jar包弄好了之后,我们想要把应用打包整一个war包又很麻烦,将一个应用做编译、测试和部署都特别麻烦。·提供了一套标准化的构建流程(编译,测试,打包,发布…·提供了一套依赖管理机制(jar包导入、冲突解决)而有了maven之后,这些问题都能迎刃而解了。
2024-10-28 10:20:35 210
原创 Redis的Key和Value的设计原则有哪些?
例如 ziplist 是一种特殊的数据结构,它可以将小型列表、哈希表和有序集合存储在一个连续的内存块中,从而节省了内存空间,但由于 ziplist 没有索引,因此在对 ziplist进行查找、插入或删除操作时,需要进行线性扫描,这可能会导致性能下降,在实际应用中,应该根据具体情况来决定是否使用 ziplist。在设计 Redis 的 Key 和 Value 时,需要考虑一些原则,以确保数据存储和检索的效率,以及满足特定用例的需求。:Key 应该保持简洁,避免过长的命名,以节省内存和提高性能。
2024-10-28 10:15:24 447
原创 Redis为什么这么快?
在Redis 6.0中,为了进一步提升I0的性能,引入了多线程的机制。:Redis 提供了多种高效的数据结构,如哈希表、有序集合、列表等,这些数据结构都被实现得非常高效,能够在 O(1)的时间复杂度内完成数据读写操作,这也是 Redis 能够快速处理数据请求的重要因素之一。:Redis 使用单线程模型,这意味着它的所有操作都是在一个线程内完成的,不需要进行线程切换和上下文切换。:Redis 是一种基于内存的数据库,数据存储在内存中,数据的读写速度非常快,因为内存访问速度比硬盘访问速度快得多。
2024-10-28 10:11:38 223
原创 Linux查看日志常用命令
线上出问题的时候,我们常用tail -n 或者 tail -f 或者grep 或者 vi cat等各种命令去查看异常信息,但是日志是在不停地刷屏,tail是动态的在变的,我们往往期望从日志最后一行往前一页一页的翻页查看,从而找到异常信息,而less命令我觉得是最实用和方便的。cat filename | grep -C 5 ‘关键字’ (显示日志里匹配字串那行以及前后5行)关键字 注:反向查找,按shift+n 键,把光标移动到下一个符合条件的。cat -n filename |grep “关键字”
2023-09-15 11:57:33 382 1
原创 mysql 获取json数组中某个字段根据下标
JSON(JavaScript Object Notation)是一种常用的轻量级数据交换格式,它以键值对的方式组织数据。MySQL从5.7版本开始引入了JSON数据类型,使得存储和处理JSON数据变得更加方便。对象(Object):类似于键值对,由大括号{}包围,每个键值对之间使用逗号分隔。数组(Array):类似于有序列表,由方括号[]包围,每个元素之间使用逗号分隔。字符串(String)数值(Number)布尔值(Boolean)NULL。
2023-08-24 11:04:30 1377
原创 java.io.IOException: Connection reset by peer
java.io.IOException: Connection reset by peer
2023-08-16 11:06:07 1228
原创 什么是分布式事务?
CAP原则又叫CAP定理,同时又被称作布鲁尔定理(Brewer's theorem),指的是在一个分布式系统中,**不可能同时满足以下三点**,一致性(Consistency),可用性(Availability),分区容忍性(Partition tolerance)
2023-06-02 15:53:04 422
原创 你还在用 BeanUtils?试试 MapStruct,优雅的对象转换解决方案!
你还在用 BeanUtils?试试 MapStruct,优雅的对象转换解决方案!
2023-05-12 11:06:31 500 1
原创 xxl-job 是什么?
写这篇文章主要是为了记录一下项目中是如何使用 xxl-job 的,并且提供一种分片广播均分任务的思路以及幂等性问题如何处理,具体使用 xxl-job 还需根据自己项目的需求,遇到问题可以参考官网。
2023-05-12 10:55:33 3495
原创 SpringBoot项目无法通过@Autowired注入bean
使用获取bean对象的工具类,既然程序无法通过注解拿到需要的bean,那就只好自己写个工具类来获取喽,下面是工具类代码,直接复制过去就能用。
2023-03-06 11:45:46 607
原创 策略+工厂模式
`策略模式`定义了一组算法,把它们一个个封装起来, 并且使它们可相互替换。 `工厂模式`用于封装和管理对象的创建,是一种创建型模式。
2023-02-02 10:50:45 240
原创 深入浅出ConcurrentHashMap1.8
ConcurrentHashMap 是一个并发散列映射表的实现,它允许完全并发的读取,并且支持给定数量的并发更新。相比于 HashTable 和同步包装器包装的 HashMap,使用一个全局的锁来同步不同线程间的并发访问,同一时间点,只能有一个线程持有锁,也就是说在同一时间点,只能有一个线程能访问容器,这虽然保证多线程间的安全并发访问,但同时也导致对容器的访问变成串行化的了。 1.6中采用ReentrantLock 分段锁的方式,使多个线程在不同的segment上进行写操作不会发现阻塞行为;1.8中直接采
2023-02-01 11:50:35 932
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人