自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 怎么把图片中的表格和文字提取出来

有时候会碰到需要从图片中特殊的表格内容提取出来,比如处理成Excel,或者把表格按照原来的格式放到word中等等,这样的情况下我们就可以用到下面这个网站了。一个图片中有多个表格可以同时识别出来,还可以一键复制按钮,点击后在本地的 Excel或者numbers软件中就能直接带格式的喜欢粘贴。而且还可以下载生成好的 Excel文件,直接下载带原单元格格式(单元格合并)的excel文件,工作效率直接拉满!这样就能提取图片中的表格了。

2023-12-22 11:24:25 2500

原创 推荐一款好用的包含表格识别的OCR网站

高效率,好用的OCR产品,能识别图片中的各种文字,还能实现表格识别,表格重做。

2023-12-12 08:59:09 1479 1

原创 优雅永不过时-每日签到功能的优雅实现

需求简介需要在页面中上展示该用户本月的签到情况,已经签到过的日期就要做一个标记。如下图这里主要解决的是数据存储和读取的问题。数据结构简单解决方案简单思考的话很好解决,可以建议使用下面的表结构来实现(去除非必要字段)字段名字段类型说明user_idint用户monthint所属月份dayint签到日这样的话简单明了,但是有一个问题,一个用户一个月就是30条数据,50万月度活跃用户(设计目标)一年就能产生 500000*30*12=180,00

2021-08-15 15:55:20 660

原创 基于Kafka实现企业级大数据迁移的完整指南

合理规划:根据数据量评估集群规模和Topic配置增量识别:选择适合业务场景的增量机制性能调优:针对网络、序列化、批处理等环节优化监控保障:建立完善的监控告警体系验证机制:确保数据完整性和一致性小消息(1KB):50-100MB/s吞吐量大消息(10KB):200-500MB/s吞吐量端到端延迟:95%请求<500ms希望本指南能帮助您成功实施基于Kafka的大数据迁移项目。根据实际业务需求调整方案,并在测试环境充分验证后再进行生产部署。

2025-06-25 10:41:15 644

原创 使用 Apache Kafka 的关键要点:开发者必知指南

Apache Kafka 是一个高吞吐量、分布式、可水平扩展的消息队列系统,广泛应用于实时数据流处理、日志聚合、事件驱动架构等场景。本文将整理 Kafka 的核心关键点,帮助开发者高效使用 Kafka。希望这篇博客能帮助你更好地使用 Kafka!如果有问题,欢迎讨论。掌握这些关键点,你的 Kafka 应用将更加稳定高效!(Consumer Lag、Broker 健康)(分区、批量、压缩)

2025-06-24 19:57:30 1014

原创 MySQL MVCC(多版本并发控制)详解

是 MySQL(InnoDB引擎)实现高并发访问的核心机制之一。理解 MVCC 能帮助你设计更高并发的数据库应用!:需维护Undo Log和历史版本。:需要Purge线程清理旧版本数据。InnoDB 每行记录包含。:支持一致性非锁定读。

2025-06-24 14:17:15 1004

原创 使用享元模式优化内存:减少重复对象的内存占用

在软件开发中,我们经常会遇到一些对象包含大量重复的属性(如样式信息、配置数据等),如果每个对象都独立存储这些数据,会导致内存浪费。:如果享元对象被修改,可能影响所有引用它的对象(通常享元对象应该是不可变的)。:让多个对象共享相同的内部状态,避免重复存储,从而节省内存。享元模式(Flyweight Pattern)是一种。:减少对象创建和垃圾回收的开销。:共享相同数据,避免重复存储。:需要分离内部状态和外部状态。如果你的应用中有大量重复数据,,从而减少内存占用?能帮你显著优化内存!

2025-06-24 12:21:58 351

原创 双重检查锁定实现的单例模式为什么需要volatile

今天介绍一下:配置管理类、数据库连接池、线程池:双重检查锁定、静态内部类、枚举在双重检查锁定(Double-Checked Locking)的单例模式实现中,如果缺少volatile关键字,可能会导致,具体表现为可能获取到。这是由Java内存模型(JMM)的特性决定的。

2025-06-24 12:04:04 264

原创 MySQL 事务实现机制详解

MySQL通过这种精巧的事务实现机制,在保证ACID特性的同时,提供了良好的并发性能。理解这些底层原理有助于开发高性能、高可靠的数据库应用。执行UPDATE语句。记录undo log。

2025-06-23 21:45:54 859

原创 为什么Elasticsearch这么快?深入解析其高性能设计

Elasticsearch(ES)作为一款流行的分布式搜索和分析引擎,广泛应用于日志分析、全文检索、实时监控等场景。希望本文能帮助你理解Elasticsearch的高性能设计!如果你有更多优化经验,欢迎在评论区分享~(词项→文档列表),这使得它能够快速定位包含特定关键词的文档,而无需全表扫描。的组合,实现了海量数据下的毫秒级搜索,使其成为大数据检索场景的首选引擎。,尤其是在海量数据下仍能保持毫秒级响应。),而ES通过倒排索引直接定位((文档→字段内容),而ES采用。Elasticsearch通过。

2025-06-23 20:36:27 529

原创 Elasticsearch 结果聚合与分页机制详解

正确选择分页方式可以避免集群性能问题,特别是处理大数据量时,Search After和Composite Aggregation是最推荐的解决方案。分片1: 查询+评分。分片2: 查询+评分。

2025-06-22 22:03:42 821

原创 Redis快的原因

注:I/O 多路复用(I/O Multiplexing)是一种高效的 I/O 处理机制,它允许单个线程/进程同时监控多个文件描述符(如套接字)的就绪状态。核心思想:用一个专门的系统调用同时监控多个 I/O 通道,当其中任意一个通道就绪(可读/可写/异常)时立即返回通知,避免无谓的等待。Redis 的高性能是多种设计选择共同作用的结果,理解这些原理有助于我们更好地使用和优化 Redis。:基于 epoll/kqueue/select 的非阻塞 I/O。SelectableChannel 及其子类。

2025-06-22 21:41:47 720

原创 你是一个有10年工作经验的后端开发,当面试官让你描述一下MySQL数据库索引,你怎么回答?

MySQL索引是提高查询性能的关键机制,它通过额外的数据结构帮助数据库引擎快速定位数据,避免全表扫描。在实际项目中,合理的索引设计往往能带来数量级的性能提升。

2025-06-22 21:28:38 296

原创 一次性理解Java垃圾回收--简单直接方便面试时使用

从GC Roots(包括虚拟机栈、本地方法栈、方法区中的静态属性、常量等引用)开始遍历;被GC Roots直接或间接引用到的对象标记为存活,其他的就是垃圾。

2025-06-22 10:33:29 328

原创 Redis哨兵模式深度解析:原理、配置与最佳实践

监控:持续检查主从实例是否正常运行通知:当被监控实例出现问题时,能通过API通知系统管理员自动故障转移:当主节点不可用时,能自动将从节点提升为主节点配置提供:为客户端提供服务发现功能,返回当前的主节点地址哨兵模式解决了Redis主从复制中手动故障转移的痛点,实现了自动化的高可用方案。Redis哨兵模式为Redis提供了成熟可靠的高可用解决方案。通过深入理解其工作原理和配置细节,开发者可以构建出稳定高效的Redis服务架构。

2025-06-21 12:19:59 821

原创 Redis集群部署终极指南:架构选型、生产部署与深度优化

Redis集群的部署和优化是一个需要持续迭代的过程。每季度进行容量评估每半年进行架构评审持续监控关键指标建立完善的灾备演练机制通过本文介绍的全套方案,您应该能够构建出支撑百万级QPS、TB级数据量的高可用Redis集群。记住,没有放之四海而皆准的完美方案,最适合的架构永远是基于业务需求和技术约束的平衡选择。

2025-06-21 11:01:41 575

原创 企业级文档搜索系统架构设计与实践指南

从试点部门开始验证建立完善的监控体系定期进行架构评审扩展阅读方向与OA系统深度集成结合NLP的智能分类自动化合规检查(注:文中所有代码示例需在实际环境中测试调整,生产部署建议进行POC验证)

2025-06-20 10:53:45 704

原创 Elasticsearch 分片与副本设计:分布式系统的智慧结晶

本文探讨了Elasticsearch分片与副本设计及其在分布式系统中的价值。分片通过水平分割数据实现存储扩展和并行查询,而副本保障高可用性和读取性能。文章分析了分片数量的权衡标准(10GB-50GB/分片)和副本数量的考量因素。同时指出类似设计思想也存在于MySQL、MongoDB、HDFS等系统中,体现了"分而治之、无单点故障"等通用设计原则。最后提出Elasticsearch最佳实践建议,包括分片大小控制、冷热分离和容量规划等,阐明这种设计模式对构建可靠分布式系统的重要参考价值。

2025-06-18 15:44:43 872

原创 基于ElasticSearch的法律法规检索系统架构实践

传统数据库方案(如MySQL)面临查询性能差、全文检索能力弱等问题,最终我们选择ElasticSearch作为核心存储引擎。不过我们计划把法规的衍生对象,也就是法律变更也保存到ES中提供给法规影响的业务方进行查阅,这一部分将会需要权限控制。通过这套方案,我们实现了法律法规信息的秒级检索,日均查询量突破50万次。欢迎在评论区交流你的ES应用场景!将5年前法规迁移到对象存储,通过ES的searchable snapshots功能保留检索能力。目前我们集团内部整理的法律法规所有内网用户都可以查阅,没有任何限制。

2025-06-11 15:39:34 1519 1

原创 ElasticSearch聚合查询从15秒到1.2秒的深度优化实践

分片不是越多越好:测试表明,当分片数超过(节点数 × 3)时,协调节点开销反而会增大doc_values比fielddata更可靠:对于聚合字段必须启用doc_values监控关键指标:# 关键监控项 GET _nodes/stats/indices/fielddata?持续优化建议定期执行减少分段数使用pre-filter机制缩小聚合数据集范围考虑将超大规模聚合迁移到ClickHouse等OLAP引擎附录完整优化前后的profile结果对比ES官方调优指南本文使用的压测数据集。

2025-06-11 12:13:46 849

原创 解决pip在使用代理的机器上不能安装任何软件的问题-SSLError(SSLEOFError(8, ‘EOF occurred in violation of protocol (_ssl.c:100

不管是阿里源还是国外的源都有这个问题。

2024-11-29 22:35:57 561

原创 CentOS 环境使用代理下载数据失败-EOF occurred in violation of protocol (_ssl.c:1002)

这误导了我,让我觉得代理很有问题,于是我各种尝试,反复调整代理设置,甚至是调整各种防火墙和包,都一无所获!3. 看一下是不是他说的no timezone found的原因。1. 错误码 1002 通常表示 SSL/TLS 握手失败。4.有点问题,设置了变量再试还是有问题。只能说我对Python太不熟悉了!2. 使用 下面的命令定位原因。

2024-11-26 01:25:27 1480 2

原创 打印数组时设置背景颜色,背景颜色根据数组数值变化深浅

打印数组时设置背景颜色,背景颜色根据数组内容变化而变化。

2024-06-21 17:24:34 190

原创 [Bug]使用gradio创建应用提示AttributeError: module ‘gradio‘ has no attribute ‘inputs‘

我安装的gradio是最新版本:4.36.1。但是这个是老的API,只支持到3.41.0。

2024-06-16 10:49:14 2262

原创 [Bug]使用duckduckgo的duckduckgo_search API搜索图片出现了错误

原来的search_images_ddg API已经不能用了,直接用fastbook中新的API search_images_ddg 即可,并且新的API似乎不支持。现在在kaggle上学习一个课程,第一课主要是识别图片里面是不是鸟🐦。另外我还尝试了在Google的colab里面试了一下,也出现了下面的错误。直接出现了下面的错误。

2024-06-12 10:35:12 1174

原创 [Bug]使用Transformers 微调 Whisper出现版本不兼容的bug

注意,每次尝试新的版本,都要重启启动整个计算资源,这样新的版本才会生效,建议最上面导入资源的时候指定版本。哎,这玩意真难啊,本来版本不会是太大的问题,奈何菜鸟碰到的问题多啊!看上去accelerate包的依赖没有导入,或者是版本不太匹配。模型的分布式训练和混合精度训练,他们都依赖。经过多次尝试,最后一次的版本好能走通。这两个命令,但是都不管用。分析一下提到的每个包的作用。我先按照他的建议执行了。我做了多次尝试如下,

2024-06-07 11:19:05 1950 2

原创 [Bug] Error: cannot import name ‘ALBERT_PRETRAINED_MODEL_ARCHIVE_LIST‘

这一步有问题,但是根本原因还是 transformers 版本有点问题,找到对应的版本即可。所以重新安装一下下面版本的transformers。

2024-06-05 15:05:35 1747 1

原创 怎么在一段文字前面加一个红色的星号

有一个小需求,对前端来说很简单,就是在一段文字前面加一个红色的星号,提醒用户注意这段文字,实现效果如下。第一段文字前面的星号,实现代码如下。

2023-12-22 07:44:35 974

原创 Vue3&el-upload 实现图片粘贴上传,截图粘贴上传

用户点击左侧最上边的输入框,在按住control+V,就能把粘贴板复制的图片传输到el-upload组件中,并自动进行上传(上传后就是业务逻辑部分,识别图片中的文字或者表格,并在前端页面就能预览表格,还能下载机器生成的Excel文件,后续再写一篇文章介绍怎么实现页面上的表格一件复制,然后在本地的Excel或者WPS,Numbers等软件带格式的粘贴)。这个功能已经上线了,如果大家想看一下效果,可以。读取粘贴板内容并传给el-upload。代码实现,直接拷贝就能用。先定义一个input框。

2023-12-14 09:46:21 1562 2

转载 OCR表格识别—(一)

5、将3中得到的值与4的值进行聚合,进行文本表格还原,将表格单元格位置与文本框位置进行聚合,然后对文本框进行排序,从上到下,从左到右进行排序,然后根据文本坐标位置信息找到文字所在的单元格,然后对单元格内的文字进行拼接,最终得到单元格内的文字信息。在整个表格识别过程中,主要包括三种模型: 文本检测模型:识别出文本的坐标值和文本框。1、文本检测:将文本进行预处理成输入结构后,通过文本检测模型识别出文本所在的框和文本框的坐标值。3、将数据输入到文本识别模型中识别出单个图像中存在的文本值和文本的坐标值。

2023-12-12 13:44:46 935

原创 Vue3&el-upload 实现在组建之外提供一个上传按钮

有这么一个需求,在使用el-upload组件进行文件上传的时候,除了组件默认提供的上传按钮,还要在列表的最前面自定义的加一个上传按钮,点击这个自定义的上传按钮要实现和点击默认的上传按钮同样的全套的上传流程。

2023-12-12 09:26:22 1228

原创 一些开源的,好看的前端组件/样式库

开源免费又好看的组件库样式库,快来看看吧

2023-03-01 17:43:31 4945

翻译 队列的使用注意点

如果允许内存中的队列不受限制,那么对于许多类别的问题,它可以不受限制地增长,直到它达到灾难性失败的地步,因为它耗尽了内存。无界队列在系统中可能很有用,因为生产者保证不会超过消费者,而且内存是一种宝贵的资源,但是如果这个假设不成立,队列无限制地增长,那么总是存在风险。除了在队列上使用单一的大颗粒锁之外,还需要管理生产者对队列头部的要求,消费者对队列尾部的要求,以及中间节点的存储,这些问题使得并发实现的设计非常复杂。在整个队列上的大颗粒锁的投放和获取操作很容易实现,但对吞吐量来说是一个很大的瓶颈。

2023-01-16 23:08:15 373

翻译 CPU缓存行的概念和假共享

当以可预测的方式访问内存时,CPU能够通过预测下一个可能被访问的内存并在后台将其预取到缓存中来隐藏访问主内存的延时成本。当对数组的内容进行迭代时,跨度是可预测的,因此内存将被预取到高速缓存中,使访问效率最大化。然而,像链接列表和树这样的数据结构,其节点在内存中的分布更加广泛,没有可预测的访问步长。这意味着,如果两个变量在同一缓存线中,而它们被不同的线程写入,那么它们就会出现与单个变量相同的写入争夺问题。这样的处理器在处理缓存中的数据和指令时效率极高,但相对而言,当发生缓存缺失时,效率就会大大降低。

2023-01-16 22:38:00 346

翻译 内存屏障产生的原因和解决策略

这对数据来说意味着,任何数值的最新版本在写入后的任何阶段都可能在一个寄存器、一个存储缓冲区、许多层缓存中的一个,或者在主内存中。编译器可以设置软件障碍,以确保编译代码的顺序,这种软件内存障碍是对处理器本身使用的硬件障碍的补充。写屏障通过标记存储缓冲区中的一个点来命令执行它的CPU的存储指令,从而通过它的缓冲区将写操作冲出去。当线程共享状态时,重要的是所有的内存变化都按顺序出现在所需的点上,以使数据交换成功。一个完整的内存屏障同时对加载和存储进行排序,但只在执行它的CPU上。

2023-01-15 12:58:15 310

翻译 CAS操作和锁的区别

CAS操作是一种特殊的机器码指令,它允许内存中的一个字被有条件地设置为一个原子操作。对于 "增加一个计数器的实验",每个线程可以在一个循环中读取计数器,然后尝试将其原子化地设置为新的增加值。如果当操作被执行时,计数器的值与提供的预期值一致,那么计数器就会被更新为新的值。另一方面,如果该值不符合预期,CAS操作将失败。这时,试图执行改变的线程就会重试,重新读取计数器的增量,以此类推,直到改变成功。如果程序的关键部分比一个计数器的简单增量更复杂,可能需要一个复杂的状态机,使用多个CAS操作来协调争夺。

2023-01-05 20:48:43 579

翻译 并发编程使用锁的代价

获取锁是通过向操作系统内核的上下文切换来实现的,它将暂停在锁上等待的线程,直到它被释放。在这样的上下文切换过程中,以及向操作系统释放控制权的过程中,执行上下文可能会丢失之前缓存的数据和指令,而操作系统可能会决定在它拥有控制权的时候做其他的内部管理任务。可以采用快速的用户模式锁,但是这些锁只有在不被争夺的情况下才会有真正的好处。这个实验的重点是调用一个函数,在一个循环中增加一个64位的计数器5亿次。语言对这个实验并不重要,在所有具有相同基本原语的语言中,结果都是相似的。

2023-01-05 18:28:21 164

翻译 并发代码要处理的两个关键点

代码的并发执行是关于两件事,相互排斥和变化的可见性。相互排斥是关于管理对某些资源的争夺性更新。变化的可见性是指控制这些变化何时对其他线程可见。如果你能消除对争夺式更新的需求,就有可能避免对相互排斥的需求。如果你的算法能够保证任何给定的资源只被一个线程修改,那么相互排斥就没有必要了。读取和写入操作要求所有的改变都对其他线程可见。然而,只有争先恐后的写操作需要相互排斥的变化。在任何并发环境中,最昂贵的操作是争夺性的写访问。要让多个线程写到同一个资源,需要复杂而昂贵的协调。通常,这是通过采用某种锁定策略来实现的。

2023-01-05 17:00:40 148

原创 微信小程序-开了调试Vconsole能正常运行,不开调试不能正常运行

这个微信小程序太奇怪了,做了一点小改动要上线,在本地连接真机调试好好的,上到体验环境手机打开就不行了。而且奇怪,体验版打开调试后又正常了!不开调试又不能用!

2022-10-28 10:19:04 3682 1

原创 Unsafe,CAS之间的关系

Unsafe 是一些不被虚拟机控制的内存操作的合集。在JUC包中使用的比较多。这个类提供了一些API,可以用于直接操作硬件资源。使用Unsafe也有一定的风险,因为他操作的内存是不受JVM管控的,不利于资源回收。在实现层面,会由JIT (即时编译器)实现,替换成具体的CPU指令。CAS 是一种原子的写操作(比较并保存)。由操作系统提供功能实现。Unsafe提供了一些cas的API,比如putObject(Object var1, long var2, Object var4);co

2022-05-01 16:16:49 819

空空如也

空空如也

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

TA关注的人

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