自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 ChatGPT升级5.0版本 带来前所未有的体验!(chatgpt還有升級版嗎 )

尽管如此,ChatGPT5.0相较于4.0版本在图像相关内容的理解和处理方面表现更佳,能够更准确地分析和回答与图像有关的问题。通过优化模型架构和训练方法,ChatGPT5.0能够更准确地理解输入的语言内容,并生成更准确、流畅的翻译结果。图像理解能力提升:虽然ChatGPT5.0和4.0都没有使用图像进行训练,但是相较于4.0版本,ChatGPT5.0能够更准确地理解和处理图像相关的内容。如上表所示,ChatGPT5.0相比之前的版本,在相同的输入条件下,能够将翻译时间缩短一半,提供更快速的翻译体验。

2024-03-23 16:10:11 1191 1

原创 ChatGPT消息发不出去,我找到了解决方案!

出现这个问题的原因,应该都是点击登录后顶部弹窗邀请「加入多语言alapha测试]了,并且语言选择了中文,抓包看到http://ab.chatgpt.com接口有问题,控制台报错,拿不到account信息。2、鼠标右键——>检查(打开devtools面板)——>应用(顶部)——>左侧应用下的存储——>勾选「包括第三方 cookies」——>点击「清除网站数据」由于篇幅有限,想了解更多内容,请点击参考链接中的内容!今天忽然发现ChatGPT无法发送消息,能查看历史对话,但是无法发送消息。

2024-03-10 20:24:03 727 3

原创 Claude3全面碾压GPT4,将成为最强大的模型

Claude3全面碾压GPT4,将成为地表最强大的语言模型。

2024-03-07 23:35:31 853 1

原创 C++基础之智能指针的自实现

智能指针实现了内存的自动化管理,在使用智能指针对一段内存空间进行管理,无需我们自己去手动释放这段内存空间,但智能指针的原理是什么?我们自己能否自实现一个智能指针用于内存的管理和监控?现在逐一进行介绍。首先智能指针无非就是...

2021-02-13 15:27:17 249

原创 《简述Linux平台下服务器框架的搭建思路(三)》

现在来陈述上一节遗留的问题,在多线程的场景下,假如主线程检测到新连接中***已连接套接字***上有读写事件发生时,那么此时如何把该套接字的IO事件交给子线程(Sub Reactor)去处理,一般情况下子线程是处于epoll_dispatch的调用上,如果没有事件便处于阻塞的状态。如何去唤醒阻塞在epoll_dispatch的子线程呢?这里就涉及到socketpair技术的应用。 //在初始化EventLoop对象时,便创建一个socketpair对象(端对端的通信,类似于进程间通信的管道),结合一个EVE

2020-12-15 23:20:28 141

原创 《简述Linux平台下服务器框架的搭建思路(二)》

上一节内容介绍完TCP服务器框架的主要单元和构造,现在开始逐步使用代码详细剖析每个结构的定义和其中涉及到的处理逻辑。首先介绍当然是EventLoop对象,在介绍EventLoop对象前,先剖析下EventLoop、EventDispatcher、Channel、EventCallBack间的逻辑流程图:先从EventLoop开始:记得上一节中介绍过,EventLoop是个大熔炉,里面可以注册任何需要的对象,那么EventLoop作为一个事件循环的对象,是否需要一个事件分发器注册在里面,用于检测和分发

2020-12-08 08:53:18 242 2

原创 《简述Linux平台下服务器框架的搭建思路(一)》

如果想搭建一个类似于Muduo的TCP服务器框架,具有高并发的服务能力,能够将单机服务做到极致,那么如下几点是需要我们去考虑的:1、采用Reactor模式,使用Epoll/Poll作为事件的分发器。2、必须支持多线程,能够将套接字上的IO事件分离到多个线程上,发挥多核CPU的优势。3、封装套接字上的读写操作,因为涉及到多个客户端套接字和大量数据的读写,直接调用操作系统提供的Read/Write函数,会显得十分不友好。服务器的结构和框架虽然复杂,但也是由很多单元和模块组成的,就好比再复杂的机器也是很多

2020-11-17 08:03:41 392

原创 《算法与数据结构之布隆过滤器》

上一节讲到了位图的原理,并陈述了公司的OA系统如何运用该原理去快速查找某位员工。但我们只考虑了员工编号为纯数字组合的情况,将纯数字映射到BitMap上当然很容易。当员工编号为字母和数字的组合时,那么此时该如何进行映射,老的方法肯定行不通;亦或员工编号的数值范围扩大了,继续使用位图会不会造成内存空间的浪费?位图显然是不适合上述的场景,我们需要在位图上作些变更,布隆过滤器(Bloom Filter)就为了解决上述问题而出现的。对于员工编号是数字和字母组合的情况,可以使用哈希函数计算出每个员工编号的哈希值K,并

2020-10-31 18:41:21 173

原创 《算法与数据结构之位图》

位图(BitMap)是内存中一种虚拟的数据结构,类似于数组。但我们在定义数组时,一般以编程语言所支持的数据类型来定义,比如:char、int、int 类型等。多数情况下数组中存储的数值远小于该数据类型所能表示的范围,这样会造成一定内存空间的浪费。计算机内存中最小存储单元是bit(比特位),一个字节也就是8个bit位,那么是否能创建一种bit类型的数组,答案是肯定的;因此BitMap就应运而生。那么BitMap一般用于什么场景中?举个很简单的例子,在拥有几万人公司的OA系统上,怎样快速地判断某个人是否存在?千

2020-10-29 12:23:25 213 2

原创 关于dll库的一些注意事项

dll顾名思义是动态链接库,为第三方提供函数接口,亦或和其他dll库一起链接成可执行程序,说白了就是一堆函数的集合。Windows操作系统为我们提供了海量的dll库,比如crt0.dll、crtn.dll库负责程序中全局、静态变量的初始化和析构,每个Windows桌面应用程序的运行都离不开这两个库。 假如我们想为第三方客户提供一些接口函数,为客户提供服务,但又不想把自己函数的具体实现过程暴露出去,那么此时dll库的作用就体现出来了。整个过程看起来很简单,但实际上为第三方提供dll库时,会有很多意想不到的.

2020-09-29 20:30:45 698

原创 Linux网络编程基础之Reactor模式和Proactor模式

在Linux平台下的服务器开发中,如何去构建高性能的网络通信框架是重中之重,自然就绕不开网络通信模型的选择和应用;目前网络通信模型中涉及到的模式有两个:Reactor模式和Proactor模式。在介绍这两个模式之前,先详细地阐述下阻塞IO、非阻塞IO、同步、异步的概念,因为经常有很多同学能把这些词汇编出各种奇怪的组合出来,连自己都不知道是什么意思。阻塞IO:当应用层发起read请求时,发出read请求的线程会被挂起,直到操作系统完成数据从内核区到应用层缓冲区的拷贝,read调用才返回;write操作也是

2020-08-16 19:15:16 1140

原创 在Linux平台下简述One Loop One Thread思想

业精于勤,荒于嬉,再怎么忙也要坚持学习和积累,千万不能让自己深陷在公司的业务代码中而不能自拔。要想具备多组服务的架构和开发能力,熟练服务端开发的相关知识是最基本的前提,从事服务器开发的同学肯定都听过One Loop One Thread思想;但是要把这种思想应用到实际的开发中,怎么去构建自己的服务器,让自己的服务能同时服务几千个甚至上万个客户端(单组服务做到极致),我相信很多同学都不具备这种能力(包括我自己)。首先我再写一个服务端程序时,需要做哪些准备工作,采用哪种IO复用技术、创建多大的线程池、怎么去

2020-08-09 23:05:52 920

原创 关于Volatile关键字底层原理的剖析

无论从事哪门语言的开发,归根结底还是要熟悉语言背后的底层原理知识,那样才能把程序中出现的各种异常问题看得更透彻;否则在bug面前会显得束手无策,陷入进退两难的境地。Volatile关键字的作用是什么?或者DCL是否需要加Volatile关键字?当面试管提出这类问题时,该如何解答,如果只是泛泛而谈,往往给面试官的印象也不会太好。归根结底,Volatile关键字的作用有两个。 1、禁止底层cpu...

2020-04-05 17:47:36 337

原创 关于一款开源远程控制软件(gh0st)的源码分析(一)

2020年注定是不平凡的一年,前有冠状病毒的肆虐,全国上下都笼罩在一种紧张而又不安的氛围中,后有20200202这个千年难得一遇的对称时刻,朋友圈便充斥着各种祝福与童年回忆。正是因为这百年难得一遇的超长假期,才能让我有精力和时间去分析那些静静地躺在我电脑磁盘里的开源软件的源码。gh0st这款开源软件,主要的用途是用于远程操作另一台计算机(包括远程文件的拷贝、远程视频连接),功能有点类似于QQ中的...

2020-02-04 20:08:55 4974 2

原创 为什么在编译程序的时候会出现“无法启动程序,因为计算机中丢失了mfc120d.dll,尝试重新安装程序以解决此问题”

在正常Windows的环境下,我们用Visual Studio编译程序时,系统默认去C盘中System32目录下寻找对应的CRT运行库。这也便是动态链接的思想,在程序运行时去链接指定的dll文件,但由于Windows版本的差异,程序不一定能够链接到指定的dll文件,那么就会出现如下图所示的错误:对于如上图所示的错误,如果我们去下载对应的dll文件并拷贝到工程文件的目录下,那么再次编译程序时又会...

2020-01-05 20:59:47 2510

原创 关于C++项目中出现“预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)”错误的解决思路

在C++项目开发中,源文件不仅限于.cpp文件,假设我们需要引入第三方的库文件时,而恰巧该库文件是.C文件;我们一般也不会把别人的.C文件改造.CPP文件,那样既耗时也可能会带来意想不到的错误。如果直接把.C文件放到项目中,一般连编译都通不过。最近在项目开发中遇到这样的异常,如图1所示。出现上述异常原因在于编译器对.C文件和.CPP文件采用了不同的编译方式,现在对编译器的编译方式做个简单的介绍...

2019-11-08 22:01:49 1947

转载 如何将Reactor模式应用于服务器的开发

前言之前翻阅了大量的资料,查看有关于Reactor模式和Proactor模式的原理及两者的应用场景,但是始终不得其解;前两天看了一位资深开发工程师的博客后,方才豁然开朗;本文是在借鉴技术大牛文章的基础上,结合自身的理解才得以完成,并非原创。写技术博客的目的是为了加深自己的理解,将书本上的精华转化为自己的知识。下面以Epoll模型为例,介绍如何将Reactor模式应用于服务器的开发中。React...

2019-08-14 10:27:28 350

原创 关于ElasticSearch环境搭建的详细教程

最近参与到公司认证管理系统的开发中,涉及到的技术栈是Spring Boot和ElasticSearch,在环境搭建的过程中遇到了不少问题,因此将安装过程及涉及到的细节进行了一番总结。集群搭建离不开ElasticSearch和ElasticSearch-head插件的安装,首先是版本的选择,ElasticSearch为6.6.2Zip版本,ElasticSearch-head则是从GitHub 上...

2019-03-20 15:56:32 246

转载 关于从源代码到可执行目标文件的那些事

***关于从源代码到可执行目标文件的那些事 在常规的软件开发工作中,我们只需对项目文件单击一下build或run便可生成可执行文件或者让应用程序运行起来;但是编译器在后台采取哪些措施、经历了哪些过程,我们都一无所知,尤其是程序越大,越容易出现问题,各模块间相互独立又相互耦合;问题排查的难度也越大。 在Linux环境下用gcc命令对.c文件进行编译,生成可执行文件。经历了四个步骤:预处理...

2019-02-12 11:42:13 302

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除