首页
学习
活动
专区
工具
TVP
发布

XINDOO的专栏

专栏作者
263
文章
177991
阅读量
34
订阅数
如何正确使用缓存来提升系统性能
在上一篇文章IO密集型服务提升性能的三种方法中,我们提到了三种优化IO密集型系统的方法,其中添加缓存(cache)的方法是最常用的,而且普适性也是最强的,今天展开讲下如何正确使用缓存。准确说我们需要解决下面三个大问题。
xindoo
2023-12-15
2050
软件开发中的抓大放小vs极致细节思维
最近在开发过程中,遇到了好多次 “这个需求点这次要不要做?” 的问题, 主要有两方阵营,比如以研发主导的 “这次先不做、等必要的时候再做” ,另外一方是以PM主导的 “这个不做需求不完整,可能影响用户体验” 。争议主要出现在一些小需求或者细节点上,一般不是啥核心功能,比如一些鸡肋需求或者有些极端异常case的处理。 前者的主要观点是“这个需求不重要可能会浪费时间,有哪些时间还不如做一些更重要的事”,后者的主要观点是“这个点虽然不是核心功能,但没有的话可能让用户决定我们产品有缺陷。” 如果遇到的两方脾气不好,甚至可能闹到剑拔弩张的情况。
xindoo
2023-11-26
1540
OpenAI Assistants-API简明教程
OpenAI在11月6号的开发者大会上,除了公布了gpt4-v、gpt-4-turbo等新模型外,还有一个assistants-api,基于assistants-api开发者可以构建自己的AI助手,目前assistants-api有三类的工具可以用。首先就是之前大火的代码解释器(Code Interpreter),这个在chatgpt-plus会员上线的时候大火了一把。其次就是文件检索(Retrieval),利用Retrieval你可以在assistants中外挂自己的知识库。还有就是函数调用了,这个就不在多说了。assistants-api目前还处于beta版本,但从OpenAI的规划来看,后续应该是会支持DALLE3、gpt4-v甚至是plugin的,我们可以期待下。
xindoo
2023-11-19
1.3K0
spring-kafka中ContainerProperties.AckMode详解
近期,我们线上遇到了一个性能问题,几乎快引起线上故障,后来仅仅是修改了一行代码,性能就提升了几十倍。一行代码几十倍,数据听起来很夸张,不过这是真实的数据,线上错误的配置的确有可能导致性能有数量级上的差异,等我说完我们这个性能问题你就清楚了。
xindoo
2023-09-16
4781
IO密集型服务提升性能的三种方法
大部分的业务系统其实都是IO密集型的系统,比如像我们面向B端提供摄像头服务,很多的接口其实就是将各种各样的数据汇总起来,展示给用户,我们的数据来源包括Redis、Mysql、Hbase、以及依赖的一些服务方的数据,并不涉及到太多复杂的计算逻辑。在过去的半年中,因为我们数据量和业务复杂性的增长,确实遇到了一些明显的性能问题,分析大部分问题的本质原因就是IO太慢了。 我们系统中最复杂的计算逻辑执行最慢也就微秒级,而调一次数据库最快也得1-2毫秒,有着2-3个数量级的差距。
xindoo
2023-08-12
6540
如何使用ChatGPT提升自己的“码”力?
ChatGPT是什么,我就不用再多介绍了吧!相信大家已经看到了它在文本领域所展现出来的实力,虽然目前的效果依旧无法比拟专业文字工作者,但其文字能力也超过了绝大多数普通人,主要还相当的便宜,让不少文字相关工作者瑟瑟发抖。不过今天我们不讨论它的文字能力,而是讨论下它的代码能力。
xindoo
2023-06-18
2960
ChatGPT函数调用初体验:让ChatGPT具备抓取网页文本的能力
OpenAI在6月13号升级了ChatGPT,推出了类似其网页版插件的功能——函数调用(Function calling),13号当天我在很多微信公众号就看到了这个消息,甚至有人将函数调用称为杀手级特性,正好周末有空,就写个Demo试用下,验证下它是平平无奇还是真的能让人眼前一亮。
xindoo
2023-06-17
1.6K0
从CPU的视角看 多线程代码为什么那么难写!
当我们提到多线程、并发的时候,我们就会回想起各种诡异的bug,比如各种线程安全问题甚至是应用崩溃,而且这些诡异的bug还很难复现。我们不禁发出了灵魂拷问 “为什么代码测试环境运行好好的,一上线就不行了?”。 为了解决线程安全的问题,我们的先辈们在编程语言中引入了各种各样新名词,就拿我们熟悉的Java为例,不仅java语言自带了synchronized、volatile、wait、notify… ,jdk中各种工具包也是层出不穷,就比如单一个Lock,就可以有很多种实现,甚至很多人都谈锁色变。
xindoo
2023-04-30
4870
为什么说过早优化是万恶之源?
Donald Knuth(高德纳)是一位计算机科学界的著名学者和计算机程序设计的先驱之一。他被誉为计算机科学的“圣经”《计算机程序设计艺术》的作者,提出了著名的“大O符号”来描述算法的时间复杂度和空间复杂度,开发了TeX系统用于排版科技文献,获得过图灵奖、冯·诺伊曼奖、美国国家科学奖章等多项荣誉。今天要说的就是他所提出的一条软件设计重要原则 Premature optimization is the root of all evil 过早优化是万恶之源。
xindoo
2023-04-02
3K2
Linux xargs命令介绍
Linux 中的 xargs 命令是一个非常有用的命令行工具,可以将一些参数集合传递给其他命令作为参数,并利用指定的命令进行处理。它可以帮助我们批量处理文件,执行一些需要多个参数的命令,并且支持并发操作。
xindoo
2023-03-19
1.2K0
深入理解Spring的事件通知机制
Spring作为一个优秀的企业级应用开发框架,不仅提供了众多的功能模块和工具,还提供了一种灵活高效的事件通知机制,用于处理组件之间的松耦合通讯。本文将详细介绍Spring的事件通知机制的原理、使用方法以及示例,希望对大家深入理解Spring框架有所帮助。
xindoo
2023-03-19
6.1K0
聊一聊过度设计!
新手程序员在做设计时,因为缺乏经验,很容易写出欠设计的代码,但有一些经验的程序员,尤其是在刚学习过设计模式之后,很容易写出过度设计的代码,而这种代码比新手程序员的代码更可怕,过度设计的代码不仅写出来时的成本很高,后续维护的成本也高。因为相对于毫无设计的代码,过度设计的代码有比较高的理解成本。说这么多,到底什么是过度设计?
xindoo
2023-03-13
6350
Java高并发之CyclicBarrier简介
Java 中的 CyclicBarrier 是一种同步工具,它可以让多个线程在一个屏障处等待,直到所有线程都到达该屏障处后,才能继续执行。CyclicBarrier 可以用于协调多个线程的执行,以便它们可以在某个点上同步执行。
xindoo
2023-03-13
3140
详解Redisson分布式限流的实现原理
我们目前在工作中遇到一个性能问题,我们有个定时任务需要处理大量的数据,为了提升吞吐量,所以部署了很多台机器,但这个任务在运行前需要从别的服务那拉取大量的数据,随着数据量的增大,如果同时多台机器并发拉取数据,会对下游服务产生非常大的压力。之前已经增加了单机限流,但无法解决问题,因为这个数据任务运行中只有不到10%的时间拉取数据,如果单机限流限制太狠,虽然集群总的请求量控制住了,但任务吞吐量又降下来。如果限流阈值太高,多机并发的时候,还是有可能压垮下游。 所以目前唯一可行的解决方案就是分布式限流。
xindoo
2023-02-11
1.4K0
XINDOO的2022年年终总结
已经好几个月没有认认真真写一篇博客了,借着年底静下心来认认真真写一篇年终总结,这也是我人生中第10篇的年终总结了。 先看下去年立的flag,不用想去年立的flag一个都没完成。首先1 算是勉强及格;2 redis的博客一篇没写;3 一行代码没写;4 立flag时带的人因公司调整 run了(你懂得);5 不要问我什么时候结婚,问就是明年。
xindoo
2023-01-29
2610
关于代码评审(CodeReview)那些不得不说的事儿
在一个成熟的团队中,CodeReview是整个研发流程中不可或缺的一步,而那些即将走向成熟的团队可能对CodeReview有很多的误解和问题,也不清楚CodeReview该如何去做,本文笔者将结合自己的经验和知识,谈谈我对CodeReview流程的一些理解和建议 。
xindoo
2022-05-23
1.3K2
如何写出高性能代码之优化内存回收(GC)
同一份逻辑,不同人的实现的代码性能会出现数量级的差异; 同一份代码,你可能微调几个字符或者某行代码的顺序,就会有数倍的性能提升;同一份代码,也可能在不同处理器上运行也会有几倍的性能差异;十倍程序员 不是只存在于传说中,可能在我们的周围也比比皆是。十倍体现在程序员的方法面面,而代码性能却是其中最直观的一面。
xindoo
2022-05-03
4640
如何写出高性能代码(二)巧用数据特性
同一份逻辑,不同人的实现的代码性能会出现数量级的差异; 同一份代码,你可能微调几个字符或者某行代码的顺序,就会有数倍的性能提升;同一份代码,也可能在不同处理器上运行也会有几倍的性能差异;十倍程序员 不是只存在于传说中,可能在我们的周围也比比皆是。十倍体现在程序员的方法面面,而代码性能却是其中最直观的一面。
xindoo
2022-04-05
5630
如何写出高性能代码(一)善用算法和数据结构
同一份逻辑,不同人的实现的代码性能会出现数量级的差异; 同一份代码,你可能微调几个字符或者某行代码的顺序,就会有数倍的性能提升;同一份代码,也可能在不同处理器上运行也会有几倍的性能差异;十倍程序员不是只存在于传说中,可能在我们的周围也比比皆是。十倍体现在程序员的方法面面,而代码性能却是其中最直观的一面。
xindoo
2022-04-05
3400
为什么程序猿都应该学点linux命令?
大家好,我是xindoo,今天和大家分享下一个我的观点——程序猿都应该学点Linux命令!这也是这两年我做后端开发的切身体会。认识我的人可能都知道,我职业生涯比较“特殊”,我毕业后先是干的运维,然后再转的Java开发。 运维的经历苦不堪言,但积累下来的运维相关经验却让我在转开发后受益匪浅,其中一项就是熟悉大部分常用的Linux命令。 我已经记不清多少次只用几行命令搞定别人半天都没搞定的事儿,然后拂袖离去,深藏功与名……
xindoo
2022-04-05
4210
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档