自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

错位竞争,单点突破。

专注密码学与信息安全、区块链、分布式存储、分布式数据库、人工智能领域。

  • 博客(332)
  • 资源 (17)
  • 收藏
  • 关注

原创 10-leveldb repair流程及优化方法

leveldb做为一个单机存储引擎,难免遇到数据损坏的情况:比如意外断电、磁盘坏块等。轻者文件损坏无法读取,严重者则导致数据库无法启动。这个时候就需要进行数据修复了。leveldb提供的修复流程如下:(1) wal日志文件转化为sstable文件(2) 扫描所有的sstable文件(3) 生成MANIFEST文件:由上述流程可知,leveldb修复后会将所有的文件添加到level 0,根据level 0层的规则,由于文件之间key有重叠,读取时会在每个文件都读取一次,速度是很慢的;同时,我们知道Lev

2022-06-13 11:45:00 1296 2

原创 09-leveldb性能优化(三)

本文主要讲述如何设置WriteOptions参数、ReadOptions参数以及compact参数,来提升读写性能。

2022-06-01 22:13:18 915

原创 08-leveldb性能优化(二)

本文主要介绍leveldb写缓冲区大小、块缓存大小、块大小、文件大小等参数的原理,以及如何合理地设置这些参数以达到性能优化的目的。

2022-05-30 12:30:00 2053

原创 07-leveldb性能优化(一)

1-Compaction:清除冗余数据,减少磁盘IOCompaction为什么能提升查询性能,我们从leveldb的原理说起。如图所示,数据写入leveldb的过程如下:数据写入MemtableMemtable达到一定大小后变为Immutable MemtableImmutable Memtable通过Minor Compaction写入0层SSTable数据读取流程如下:从Memtable中查询;从Immutable Memtable中查询;遍历level 0所有文件,若未查找到

2022-05-18 22:01:43 1483

原创 06-Leveldb实现-sstable

本文主要介绍leveldb中sstable文件的组成及格式,数据块、元数据块、元数据索引块、索引块、footer的结构,并结合源码进行分析。

2022-05-14 20:53:26 336

原创 05-Leveldb实现-Memtable

Memtableleveldb数据写入时并非直接落盘,而是先保存在内存中,在内存中的数据按key进行排序。当内存中的数据达到一定大小时,再将这批数据批量写入磁盘。在内存中的数据结构我们称之为Memtable,本节将介绍Memtable的实现。先看代码:class MemTable { public: // MemTables are reference counted. The initial reference count // is zero and the caller must c

2022-05-08 22:13:10 815

原创 04-Leveldb实现-Log

日志文件包含了一系列的32K大小的块。每个块包含了一系列的记录(record):block := record* trailer?record := checksum: uint32 // crc32c of type and data[] ; little-endian length: uint16 // little-endian type: uint8 // One of FULL, FIRST, MIDDLE, LAST data: uint

2022-04-24 12:00:00 585

原创 03-Leveldb原理

01-简介谷歌曾经发布过三篇大名鼎鼎的论文,《GFS-Google FileSystem》、《BigTable》、《MapReduce》,其中BigTable中描述了分布式数据库的实现,而leveldb正是该论文中所描述的tablet的具体实现。同时,leveldb的作者就是《BigTable》论文的作者。leveldb是一个非常简洁且具有代表意义的基于LSM TREE的存储引擎,堪称经典。掌握了LEVELDB,也就掌握了LSM TREE思想的精髓。leveldb存储引擎的原理框架如下图所示:上图简

2022-04-17 08:38:13 727

原创 02-leveldb入门

01-leveldb编译和使用在github下载开源代码:git clone --recurse-submodules https://github.com/google/leveldb.git进入项目根目录,执行以下命令:mkdir -p build && cd buildcmake -DCMAKE_BUILD_TYPE=Release … && cmake --build .以上命令运行之后会编译全部代码包括测试程序,windows下编译生成文件在leveldb

2022-03-20 19:27:48 1645

原创 01-leveldb概述

01-存储背景数据存储是信息时代的一项基础技术,是各种互联网应用背后的重要基石。例如我们每天用到的各种APP,看头条,刷抖音,以及个人的各种电子数据的保存等等,都离不开存储技术。在开发者的角度,数据存储大多是使用数据库,而大家广泛使用的又是比较成熟的关系型数据库,例如mysql、oracle、db2、sqlserver等。一直以来,关系型数据库得到大家的青睐。但随着互联网和信息技术的发展,以及各种新的应用场景的需求,各种数据库不断涌现,也出现了新的数据库类型,比如kv数据库、文档数据库、图数据库、时序数

2022-03-13 19:07:24 1947

原创 椭圆曲线密码原理

椭圆曲线密码概述⾃从公钥加密被发明之后,⼀些合适的数学函数被提出,譬如:素数幂和椭圆曲线乘法。这些数学函数都是不可逆的,就是说很容易向⼀个⽅向计算,但不可以向相反⽅向倒推。基于这些数学函数的密码学,使得⽣成数字密钥和不可伪造的数字签名成为可能。⽐特币正是使⽤椭圆曲线乘法作为其公钥加密的基础算法。 在⽐特币系统中,我们⽤公钥加密创建⼀个密钥对,⽤于控制⽐特币的获取。密钥对包括⼀个私钥,和由...

2018-04-03 11:25:14 4940

原创 公钥密码体制RSA算法原理

RSA概述假如你已经了解了对称密码体制,你肯定知道对称密码中存在着密钥分发和管理的难题。为了解决这一问题,Whitefield与Martin Hellman在1976年提出了一个奇妙的密钥交换协议,称为Diffie-Hellman密钥交换协议/算法(Diffie-Hellman Key Exchange/Agreement Algorithm)。这个机制的巧妙在于需要安全通信的双方可以用这个方...

2018-04-03 10:22:47 9926 1

转载 用Python从零开始创建区块链

原文地址:https://learnblockchain.cn/2017/10/27/build_blockchain_by_python/ 本文通过python编程实现了区块链的一个原型,通过代码可以形象地理解区块链的工作原理,具体细节请看原文。代码地址:https://github.com/anda0109/pyblockchain 下面是完整代码:import hashlibi...

2018-03-14 17:10:49 723

原创 Ubuntu搭建以太坊开发环境—使用truffle框架

环境ubuntu-14.04 ubuntu-14.04-desktop-amd64.iso ,不多解释。 nodejs用来安装truffle等工具truffle ,目前最好用的以太坊开发框架 ganache ,可以跑开发环境下的私有区块链步骤1、前提是ubuntu已经可以正常使用,包括上网。 2、下载nodejs,按经验apt-get安装的nodejs不可用,估计apt...

2018-03-09 10:33:09 2231

转载 Windows下编译bitcoin

编译windows版的比特币程序,基本上有两种方法,一种是在linux平台(推荐ubuntu 13.10)通过交叉编译的方法来编译,另外一种就是直接在windows平台编译。第一步:安装变编译环境QT和MINGW,msys1、msys是一个在windows平台模拟shell的程序。访问http://sourceforge.net/projects/mingw/files/Install...

2018-03-06 14:55:46 1644

原创 Ubuntu下编译windows版本bitcoin

要编译windows版的比特币程序,基本上有两种方法,一种是在linux平台(推荐ubuntu 13.10)通过交叉编译的方法来编译,另外一种就是直接在windows平台编译。下面就详细介绍一下如何在Ubuntu平台编译比特币程序。官方参考:https://github.com/bitcoin/bitcoin/blob/master/doc/build-windows.mdUbun...

2018-03-06 14:54:53 1529

原创 centos7环境下编译bitcoin

centos7虚拟机安装虚拟机安装完成后需要配置好网络,能连接上互联网后再进行后面操作。vi /etc/sysconfig/network-scripts/ifcfg-ens33 (ens33为网卡名称)TYPE=EthernetBOOTPROTO=static #启用静态IP地址DEFROUTE=yesPEERDNS=yesPEERROUTES=yesIPV4_F...

2018-03-06 09:51:36 1868

原创 一个例子看LLM的工具调用流程

前面在我们使用langchain等框架做多工具调用的时候,我们不清楚具体的交互流程。LLM的推理过程是怎么样的,是一次做完规划还是逐个调用工具。我们今天直接使用openai的接口,用原始的写法来看它具体执行的过程是怎样的。

2025-05-12 14:29:37 190

原创 10-小米开源的MINO模型,到底什么水平。

总的来说,MiMo-7B如果是6个月前发,可能算得上推理模型的顶流。今天发,应该不会引起太多关注。对于我们普通的推理模型使用者,也不用关注这个模型。Deepseek-R1、Qwen3系列4b以上模型,任一个性能都比它要好。他的价值在于将探索过程公开,使用推理数据做预训练,使基础模型天然具备推理潜力,同时在强化学习奖励机制和性能方面做了一系列优化。为开源社区提供见解和思路,也是一种贡献。深度探索AI应用。

2025-05-01 09:49:52 653

原创 09-Qwen3开源,性能全面碾压deepseek,本地部署实测来了

对于阿里新开源的模型Qwen3,用相对少的参数获得了更高的性能,将会进一步降低模型的使用成本。这将进一步促进大模型应用的发展。同时,思考和非思考模式合二为一,不管对于使用体验还是部署成本也是一个重大的进步。还有,工具调用支持能力,对于Agent极其重要。虽然在我的测试中存在瑕疵,相信官方版本中会解决这个问题。好了,Qwen3的分享就到这里。今天的Qwen3力压deepseek,同样期待明天deepseek-R2的再次超越。深度探索AI应用。

2025-04-30 09:04:36 1084

原创 08-5分钟用langchain实现一个能查天气的Agent

Agent可以经过反复调研为我们出股票分析报告,可以根据我们的需求和预算帮我们制定旅游计划,甚至可以根据我们的需求帮我们写一个网站。它不再是简单的只能对话的“玩具”,而是可以规划和执行的帮手。也就是具有了Resoning + Action的能力。能根据模型的推理和规划,来调用工具,完成复杂任务,这就是对Agent最基本的理解。重点是根据模型的推理和规划来调用工具,而不是人为硬编码固定流程来调用工具,后者我们一般称为workflow。

2025-04-28 14:46:51 973

原创 07-轻松实现文字转语音 - Coqui TTS部署实践

Coqui TTS是一个开源的文本转语音(TTS)工具包,旨在提供高质量、灵活且易于使用的语音合成解决方案。它由 Mozilla 的 TTS 项目发展而来,并在社区的支持下不断改进和扩展。Coqui TTS 支持多种语言、模型架构和声码器,适用于从研究到生产的各种场景。

2025-04-18 11:10:29 948

原创 06-A2A协议:解锁多Agent协作的无限可能

功能发现:Agent可以使用 JSON 格式的“Agent card”公布其功能,从而允许客户端Agent确定可以执行任务的最佳Agent,并利用 A2A 与远程Agent进行通信。简单来说,A2A协议是由谷歌发起的,用于Agent之间协作的一个协议标准,旨在构建Agent之间协作的生态,推动Agent协作标准,以帮助人类完成复杂的任务。这种协作努力标志着一个共同的未来愿景,即 AI Agent,无论其底层技术如何,都可以无缝协作以自动化复杂的企业工作流程,并推动前所未有的效率和创新水平。

2025-04-17 21:42:32 744

原创 05-一文读懂MCP:连接AI模型与外部世界的桥梁

MCP由Anthropic于2024年11月底推出,目的是解决大语言模型与外部环境交互时的连接问题。它通过建立一种安全、双向的链接,使得大模型能够以一致的方式访问外部资源,同时确保数据的安全性和可控性。MCP(Model Context Protocol,模型上下文协议)是一种开放标准协议,旨在统一大型语言模型(LLM)与外部数据源和工具之间的通信方式。它可以被看作是AI应用程序的“USB-C接口”,为大模型提供了一种标准化的方法来连接不同的数据源、工具和服务。

2025-04-14 14:22:47 1061

原创 13-Leveldb快照原理及其实现

LevelDB 的快照(Snapshot)机制在实现一致性读取的同时,对 Compaction 的行为也有一定的影响。为了更好地理解这种影响,我们需要从 LevelDB 的快照机制、Compaction 的原理以及两者之间的交互关系入手。例如,如果某个键在版本 100 被删除,但有一个快照的版本号是 99,那么这个键的旧版本数据必须保留,直到该快照被释放。通过合理的快照管理和参数调优,可以缓解快照对 Compaction 的负面影响,从而在一致性和性能之间取得平衡。:无效数据的存在增加了读取路径上的负担。

2025-04-07 17:55:06 712

原创 12-leveldb优化读性能的方法

LevelDB 是一个高性能的键值存储引擎,其设计目标之一就是优化读性能。为了实现这一目标,LevelDB 在多个方面采用了特定的技术和方法来提高读操作的效率。一、内存中的快速读取:MemTable 和 Immutable MemTable。:Table Cache 和 Block Cache 提高热点数据的访问速度。:利用 MemTable 和 Immutable MemTable。:无锁设计和快照机制提升并发读取能力。:利用操作系统缓存和预读取技术。:减少文件数量和读取范围。:快速排除不存在的键。

2025-04-02 16:10:27 664

原创 11-leveldb compact原理和性能优化

LevelDB 的 Compaction 和垃圾回收机制在保证数据一致性和读写性能的同时,也面临写放大、空间放大等问题。通过调整策略(如分级 Compaction)、并行化、冷热分离等优化手段,可以显著提升性能。实际应用中,需根据工作负载(读/写密集型)和硬件环境(SSD/HDD)选择合适的配置。

2025-04-01 17:38:28 802

原创 GPU编程实战指南04:CUDA编程示例,使用共享内存优化性能

在CUDA编程中,共享内存比全局内存效率高的核心原因在于其。

2025-03-20 22:05:32 1105

原创 04-参数量差20倍!QwQ 32B性能竟超越DeepSeek 671B?性能对比实测

QwQ 是 Qwen 系列的推理模型。与传统的指令调优模型相比,具备思考和推理能力的 QwQ 在下游任务中,尤其是在处理难题时,能够显著提高性能。QwQ-32B 是一个中等规模的推理模型,能够在与最先进的推理模型(例如 DeepSeek-R1、o1-mini)的竞争中取得优异的表现。

2025-03-12 21:48:33 557

原创 03-超简单,小白也能使用deepseek构建本地知识库!

想必大家都听说过用大模型构建知识库,目前大模型对于我们个人来说,最容易落地的就是构建自己的知识库了。虽然有很多的在线应用,如腾讯的ima等,但是有些内容我们并不想公开。而且我们与大模型聊天对话的内容也容易泄露个人隐私。因此,本节我就教大家一个最简单的方法使用deepseek部署本地知识库。

2025-03-09 22:06:00 241

原创 02-简单几步!在Windows上用GPU运行DeepSeek-R1模型

我们在《文章中介绍了如何编译llama.cpp在本地运行deepseek大模型,但是我们编译的版本是不支持GPU的,如果你的电脑有GPU,可以跟随我们今天的文章,一起把GPU利用起来!

2025-03-09 10:22:40 438

原创 GPU编程实战指南03:CUDA开发快速上手示例,GPU性能碾压实测

上一节《GPU编程指南02:CUDA开发快速上手示例》中我们完成了一个使用GPU进行加减乘除四则运算的例子。没有学习的可以先跳转学习这一节,因为它有详细的代码注释,学习完这一篇,你就基本入门了GPU编程。在这个例子中,我们使用GPU进行运算,同时也会用CPU进行运算,然后将两者的结果进行对比,以确保我们代码运行的结果是正确的。既然CPU可以计算,为什么要用GPU呢?因为GPU可以进行并行计算,计算效率高。为了验证这一点,我们将上上节的代码进行完善,分别加入CPU和GPU运算的耗时统计。

2025-03-09 09:29:49 808

原创 GPU编程实战指南02:CUDA开发快速上手示例

这是一个使用CUDA进行GPU并行四则运算的示例程序。程序展示了如何利用GPU的并行计算能力执行大规模的加法、减法、乘法和除法运算,并与CPU计算结果进行对比验证。

2025-03-08 22:06:44 520

原创 GPU编程实战指南01:CUDA编程极简手册

CUDA编程是一个强大的工具,能够显著提升计算密集型应用的性能。理解CUDA的基本原理编写高效的GPU程序解决常见的CUDA编程问题优化CUDA应用性能持续学习和实践是提高CUDA编程技能的关键。建议从简单的示例开始,逐步尝试更复杂的应用场景。

2025-03-08 21:56:27 967

原创 01-简单几步!在Windows上用llama.cpp运行DeepSeek-R1模型

Llama.cpp 是一个开源的、轻量级的项目,旨在实现 Meta 推出的开源大语言模型 Llama 的推理(inference)。Llama 是 Meta 在 2023 年开源的一个 70B 参数的高质量大语言模型,而 llama.cpp 是一个用 C++ 实现的轻量化推理端解决方案,适用于运行和测试 Llama 模型。1.轻量化:llama.cpp 是一个非常轻量级的项目,代码简洁且易于编译,适合快速上手和测试。2.开源:完全开源,代码和模型权重都可以自由获取和使用。

2025-03-08 18:59:47 1059

原创 Haproxy负载均衡部署

Haproxy安装:useradd haproxy#wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.25.tar.gz# tar zxvf haproxy-1.4.25.tar.gz# cd haproxy-1.4.25# make TARGET=linux26 PREFIX=/usr/local/haproxy ARCH=...

2018-10-27 16:10:00 596

原创 ZeroMq的编译及使用

ZeroMq是一个开源的消息队列网络框架,支持进程内和进程间的通信。 源码地址:https://github.com/zeromq/libzmqwindows下的编译: 打开build/msvc,打开工程,编译报错,解决方案如下: 1、添加宏 ZMQ_IOTHREAD_POLLER_USE_SELECT ZMQ_POLL_BASED_ON_SELECT 2、编译成功,链接出错 将...

2018-07-31 17:57:34 3645

原创 ubuntu安装C++ oracle开发环境(oci)

1、oracle官网下载rpm包 http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html 2、安装rpm包 Ubuntu的软件包格式是deb,如果要安装rpm的包,则要先用alien把rpm转换成deb。 sudo apt-get install alien #alien默认没有安装,所以首先要...

2018-07-04 10:07:45 1799

转载 设计模式(十一)——模板方法模式(Template Method Pattern,行为型)

https://blog.youkuaiyun.com/k346k346/article/details/60468153

2018-04-12 23:18:39 529

转载 设计模式 (十)——适配器模式(Adapter Pattern,结构型)

https://blog.youkuaiyun.com/k346k346/article/details/60465994

2018-04-12 23:08:52 453

xulrunner-1.9.0.17.en-US.win32.sdk.zip

用于火狐的扩展及NPAPI插件开发的SDK。使用方法参见我的博客http://blog.youkuaiyun.com/anda0109

2015-12-25

U盘识别及自动备份,MFC开发

U盘自动识别及备份的软件,MFC开发,满足你的U盘自动备份要求

2012-07-23

仿酷狗音乐播放器(C语言)

C语言开发的仿酷狗音乐播放器,基本实现酷狗音乐播放器所有功能。

2012-06-13

ldapbrowser

非常方便好用的ldap客户端,是你搭建ldap服务器和进行操作的最佳帮手

2012-04-30

屏幕录像专家_2011.12.26.exe

屏幕录像专家,视频录制,教学视频制作的好帮手

2012-04-01

C语言windows计算器 课程设计毕业设计

C语言写的仿windows计算器,含C语言源代码,适合C/C++开发人员,计算机软件开发人员,及计算机专业课程设计及毕业设计。

2012-02-14

山寨酷狗3.0(含C语言源代码)

C语言开发的酷狗音乐播放器,基本能实现酷狗所有功能,并且有不亚于酷狗的界面,注意歌曲列表不支持双击播放。

2012-02-12

数字键盘高手(C语言源码,课程设计毕业设计)

适合于办公室工作人员,财务管理人员会计等使用的数字键盘练习软件。同时有完整的c语言源代码,也适合程序开发人员,毕业设计课程设计等。

2012-02-12

如何成为十倍效率开发者

本文教你如何成为一个高效开发者,而不是代码工人

2012-02-10

如何提高团队编程水平

本文教你如何组建一流团队,提高团队开发水平,在竞争激烈的时代赢得胜利。

2012-02-10

C语言写的酷狗音乐播放器

纯C语言写的酷狗音乐播放器,界面几乎和酷狗7一模一样

2012-02-10

串口高度助手(含源代码)

电子工程师必备工具,串口通讯调试助手,含源代码

2011-07-30

汇编语言写的计算器(含源码)

汇编语言写的计算器源码,你学习汇编的起点。

2011-05-06

四级数据库工程师真题08~09年全

08~09年的数据库真题,并附有详细答案。

2010-03-26

程序员的SQL经典(面向应用,深入学习和掌握数据库的各方面知识)

面向应用,深入学习和掌握数据库的各方面知识

2010-03-19

空空如也

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

TA关注的人

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