当前位置: 首页 > news >正文

POI优化Excel录入

57000+单词原始录入时间258S

核心代码:

List<Word> wordBookList = ExcelUtil.getReader(file.getInputStream()).readAll(Word.class);if (!CollectionUtil.isEmpty(wordBookList)) {for (Word word : wordBookList) {//逐条向数据库中插入单词wordMapper.insert(word);}}

线程池方式录入时间18S

核心代码:

//获取核心数int coreCount = Runtime.getRuntime().availableProcessors();//创建线程池ExecutorService executorService= Executors.newFixedThreadPool(2*coreCount);List<Word> wordBookList = ExcelUtil.getReader(file.getInputStream()).readAll(Word.class);//对列表单词进行分区并发录入int partitionSize=wordBookList.size()/(2*coreCount);List<List<Word>> wordListPartition = Lists.partition(wordBookList, partitionSize);for (int i = 0; i <wordListPartition.size(); i++) {Runnable task=new ExcelInput(wordListPartition.get(i),wordMapper);executorService.execute(task);}executorService.shutdown();//阻塞当前线程,直到线程池中的任务执行完毕try {if(!executorService.awaitTermination(1, TimeUnit.HOURS)){executorService.shutdownNow();}} catch (InterruptedException e) {e.printStackTrace();Thread.currentThread().interrupt();}

优化流程:

首先获取当前主机核心数N,因为大数据量单词录入属于IO密集型所以我们设置线程池的大小为2*N第二步我选择将List拆分为2*N接着放入线程池当中去执行单词录入任务基于此线程池中的多个线程可以对数据的录入进行并发操作大大提高了录入的效率

选择2*N的原因是代码中获取的核心数为物理核心数,而实际上主机可以利用超线程技术将一个物理核心当做两个逻辑核心来使用,当我们想让CPU利用率达到100%时就可以设置2*N个线程数并将单词分为2*N份交给线程池中的线程处理同时减少了线程的上下文切换所带来的损耗。

240/258=0.93

优化后单词录入效率提高90%以上

相关文章:

POI优化Excel录入

57000单词原始录入时间258S 核心代码: List<Word> wordBookList ExcelUtil.getReader(file.getInputStream()).readAll(Word.class);if (!CollectionUtil.isEmpty(wordBookList)) {for (Word word : wordBookList) {//逐条向数据库中插入单词wordMapper.insert(word);}…...

实时图像与视频超分辨率:高效子像素卷积网络(ESPCN)解析

文章目录 概要理论知识操作实操环境配置基础命令格式&#xff1a;效果示例 概要 超分辨率系列论文阅读卷1&#xff1a;Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network PDF网址&#xff1a;https://arxiv.org/…...

QT--对话框的切换

文章目录 前言一、主窗口ui二、创建子窗口三、步骤1.主界面------>子页面2.子界面------>主页面 四、总结 前言 之前我们学了qt中最重要的东西–信号和槽 我们现在实现这样一个demo&#xff0c;程序启动后弹出主界面&#xff0c;点击主界面的按钮弹出子窗口&#xff0c;…...

深入浅出:CUDA是什么,如何利用它进行高效并行计算

在当今这个数据驱动的时代&#xff0c;计算能力的需求日益增加&#xff0c;特别是在深度学习、科学计算和图像处理等领域。为了满足这些需求&#xff0c;NVIDIA推出了CUDA&#xff08;Compute Unified Device Architecture&#xff09;&#xff0c;这是一种并行计算平台和编程模…...

Zotero PDF Translate插件配置百度翻译api

Zotero PDF Translate插件可以使用几种翻译api&#xff0c;虽然谷歌最好用&#xff0c;但是由于众所周知的原因&#xff0c;不稳定。而cnki有字数限制&#xff0c;有道有时也不行。其他的翻译需要申请密钥。本文以百度为例&#xff0c;进行申请 官方有申请教程&#xff1a; Zot…...

利用acme.sh 申请 Google 免费证书

1.Google API权限准备 获取 EAB 密钥 ID 和 HMAC 登录你的 GCP 控制台面板&#xff0c;进入 Public Certificate Authority API 管理页面&#xff08;https://console.cloud.google.com/apis/library/publicca.googleapis.com&#xff09;点击启动&#xff1a; 或者直接在下一…...

腾讯云cloudstudio使用笔记(一)

0、计划及目标 1&#xff09;、这个系列用于将cloudstudio快速入门将前端代码在cloudstudio中从git仓库拉下来并运行—本文档的目标已实现 2&#xff09;、基于cloudstudio和腾讯的ai代码助手腾讯自己满血的deepseek写代码&#xff0c;减少前端工作量—待补充 3&#xff09;、…...

python自动化制作常规的日报数据可视化

python自动化制作常规的日报数据可视化 作者&#xff1a;i阿极 作者简介&#xff1a;Python领域新星作者、多项比赛获奖者&#xff1a;博主个人首页 &#x1f60a;&#x1f60a;&#x1f60a;如果觉得文章不错或能帮助到你学习&#xff0c;可以点赞&#x1f44d;收藏&#x1f4…...

C语言:在主函数中输入十个等长的字符串。用另一函数对它们排序,然后在主函数输出这10个已排好序的字符串。

&#xff08;1&#xff09;用字符型二维数组 #include <stdio.h> #include <string.h> int main() {void sort(char s[][6]);int i;char str[10][6];printf("input 10 strings:\n");for (i0;i<10;i)scanf("%s",str[i]);sort(str);printf(&…...

构建高效智能对话前端:基于Ant Design X 的deepseek对话应用

文章目录 实现的效果前言Ant Design X添加欢迎组件创建对话气泡存储对话历史渲染对话气泡 输入组件WebSocket 连接总结 实现的效果 待机页面&#xff1a; 等待页面&#xff1a; 完成页面&#xff1a; 前言 随着人工智能技术的飞速发展&#xff0c;大模型对话系统已成为…...

SQLMesh 系列教程5- 详解SQL模型

本文将详细介绍 SQLMesh 的 SQL 模型组成要素及其在实际项目中的应用。SQLMesh 是一个强大的数据工程工具&#xff0c;其 SQL 模型由 MODEL DDL、预处理语句、主查询、后处理语句以及可选的 ON VIRTUAL UPDATE 语句组成。我们将通过一个电商平台每日销售报告的实例&#xff0c;…...

本地DeepSeek模型GGUF文件转换为PyTorch格式

接前文,我们在本地Windows系统上,基于GGUF文件部署了DeepSeek模型(DeepSeek-R1-Distill-Qwen-1.5B.gguf版本),但是GGUF是已经量化的版本,我们除了对其进行微调之外,无法对其训练,那么还有没有其他办法对本地的GGUF部署的DeepSeek模型进行训练呢?今天我们就反其道而行之…...

Flutter:动态表单(在不确定字段的情况下,生成动态表单)

关于数据模型&#xff1a;模型就是一种规范约束&#xff0c;便于维护管理&#xff0c;在不确定表单内会出现什么数据时&#xff0c;就没有模型一说。 这时就要用到动态表单&#xff08;根据接口返回的字段&#xff0c;生成动态表单&#xff09; 1、观察数据格式&#xff0c;定义…...

【Python项目】文本相似度计算系统

【Python项目】文本相似度计算系统 技术简介&#xff1a;采用Python技术、Django技术、MYSQL数据库等实现。 系统简介&#xff1a;本系统基于Django进行开发&#xff0c;包含前端和后端两个部分。前端基于Bootstrap框架进行开发&#xff0c;主要包括系统首页&#xff0c;文本分…...

C# ref 和 out 的使用详解

总目录 前言 在 C# 编程中&#xff0c;ref 和 out 是两个非常重要的关键字&#xff0c;它们都用于方法参数的传递&#xff0c;但用途和行为却有所不同。今天&#xff0c;我们就来深入探讨一下这两个关键字的用法和区别&#xff0c;让你在编程中能够得心应手地使用它们。 一、什…...

Ubuntu 24.04.1 LTS 本地部署 DeepSeek 私有化知识库

文章目录 前言工具介绍与作用工具的关联与协同工作必要性分析 1、DeepSeek 简介1.1、DeepSeek-R1 硬件要求 2、Linux 环境说明2.1、最小部署&#xff08;Ollama DeepSeek&#xff09;2.1.1、扩展&#xff08;非必须&#xff09; - Ollama 后台运行、开机自启&#xff1a; 2.2、…...

用 WOW.js 和 animate.css 实现动画效果

用 wow.js 就可以实现动画效果&#xff0c;但由于里面的动画样式太少&#xff0c;一般还会引入 animated.css 第一步&#xff1a;下载 选择合适的包管理器下载对应的内容 pnpm i wow.js animated.css --save 第二步&#xff1a;引入 在main.js中加入&#xff1a; import …...

1-知识图谱-概述和介绍

知识图谱&#xff1a;浙江大学教授 陈华军 知识图谱 1课时 http://openkg.cn/datasets-type/ 知识图谱的价值 知识图谱是有什么用&#xff1f; 语义搜索 问答系统 QA问答对知识图谱&#xff1a;结构化图 辅助推荐系统 大数据分析系统 自然语言理解 辅助视觉理解 例…...

flink jobgraph详细介绍

一、Flink JobGraph 的核心概念 JobGraph 是 Flink 作业的核心执行计划&#xff0c;它描述了作业的任务拓扑结构和数据流关系。JobGraph 由以下几部分组成&#xff1a; 顶点&#xff08;Vertex&#xff09; 每个顶点代表一个任务&#xff08;Task&#xff09;&#xff0c;例如…...

使用nginx+rtmp+ffmpeg实现桌面直播

使用nginxrtmpffmpeg实现桌面直播 流媒体服务器搭建 docker run docker镜像基于添加了rtmp模块的nginx&#xff0c;和ffmpeg docker pull alfg/nginx-rtmp docker run -d -p 1935:1935 -p 8080:80 --namenginx-rtmp alfg/nginx-rtmprtmp模块说明 进入容器内部查看 docker…...

基于安卓的美食探店与菜谱分享系统毕设源码

博主介绍&#xff1a;✌ 专注于Java,python,✌关注✌私信我✌具体的问题&#xff0c;我会尽力帮助你。一、研究目的本研究旨在设计并实现一款基于安卓平台的集成化美食探店与菜谱分享系统以解决当前餐饮信息获取与共享过程中存在的多重问题。随着移动互联网技术的普及及智能手机…...

解锁B站缓存视频:m4s-converter让你的收藏永不消失

解锁B站缓存视频&#xff1a;m4s-converter让你的收藏永不消失 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否遇到过精心收藏的B站视频突…...

APKMirror终极指南:5步打造安全便捷的安卓应用下载体验

APKMirror终极指南&#xff1a;5步打造安全便捷的安卓应用下载体验 【免费下载链接】APKMirror 项目地址: https://gitcode.com/gh_mirrors/ap/APKMirror 你是否曾因为找不到官方应用商店的特定版本而苦恼&#xff1f;是否担心第三方下载站点的安全风险&#xff1f;APK…...

C++(标签派发 Tag Dispatching)

一、什么是标签派发&#xff1f;&#x1f3af; 核心概念标签派发&#xff08;Tag Dispatching&#xff09; 是C中一种编译期多态技术&#xff0c;它利用空结构体标签和函数重载&#xff0c;在编译时根据类型特征选择最优的实现路径。&#x1f4ca; 为什么需要标签派发&#xff…...

别再让板厂催你了!AD21导出Gerber文件保姆级教程(附各文件作用详解)

Altium Designer 21 Gerber文件导出全流程与核心文件解析 作为一名硬件工程师&#xff0c;最尴尬的时刻莫过于板厂技术客服打来电话&#xff1a;"您的Gerber文件缺少机械层定义"或者"钻孔文件与设计不符"。这种沟通不仅耽误项目进度&#xff0c;更暴露了我…...

终极FanControl风扇控制指南:免费解决Windows电脑散热与噪音难题

终极FanControl风扇控制指南&#xff1a;免费解决Windows电脑散热与噪音难题 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_T…...

3个关键步骤:在Windows上轻松安装APK文件的终极解决方案

3个关键步骤&#xff1a;在Windows上轻松安装APK文件的终极解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想过&#xff0c;在Windows电脑上直接安…...

深度观察:武汉广联达培训机构体验情况

行业痛点分析在广联达培训领域&#xff0c;传统培训模式存在诸多问题。调查显示&#xff0c;传统教室集中授课的灌输式教学模式对造价实操学习的适配性极低&#xff0c;核心痛点源于学员的“个性化差异”与实操学习的“实践性本质”。学员的专业背景、专业基础、接受和领悟能力…...

告别卡顿!用Unreal 5的Niagara和顶点动画,轻松渲染上万“小兵”

突破性能极限&#xff1a;Unreal 5 Niagara与顶点动画实现万人同屏实战指南 当屏幕上同时出现数百个角色时&#xff0c;帧率骤降是每个UE5开发者都经历过的噩梦。骨骼动画的计算开销、移动组件的性能消耗、DrawCall的堆积&#xff0c;这些问题在大规模群体渲染时会被无限放大。…...

从45分钟到5分钟:Brigadier如何彻底改变Mac Boot Camp驱动部署体验

从45分钟到5分钟&#xff1a;Brigadier如何彻底改变Mac Boot Camp驱动部署体验 【免费下载链接】brigadier Fetch and install Boot Camp ESDs with ease. 项目地址: https://gitcode.com/gh_mirrors/bri/brigadier 在混合设备管理成为企业IT新常态的今天&#xff0c;Ma…...