仿真干货|算例核心数越多反而越慢?来了解下“最佳并行规模”!

HFSS高效仿真进阶:从模型简化、求解器选择到网格优化的实战技巧 三维全波电磁场仿真是射频、微波及高速电路设计的核心技术,其原理基于有限元法,通过数值计算求解麦克斯韦方程组,从而精确预测电磁行为。这项技术的核心价值在于,它能够在物理原型制造之前,虚拟地分析和优化天线、滤波器、高速互连等关键部件的性能,大幅缩短研发周期并降低成本。在工程实践中,仿真效率与精度至关重要,尤其是在处理大规模阵列天线或复杂封装结构时。本文聚焦于行业标准工具HFSS,深入探讨如何通过合理的模型简化、精准的求解器选择以及科学的网格控制,有效提升仿真效率与结果可靠性,并自然融入端口校准与自适应网格等关键 阅读详情

高性能计算的瓶颈

在实际的工作和科研中,许多人会遭遇一个令人费解的困境:

明明想要通过增加核心数来提高计算效率,但是随着并行计算核心数的不断增加,原本期待的加速效果并未如约而至,计算效率的曲线非但没什么变化,甚至开始不断下降。

而影响计算效率的因素除了“算法的优化”,像“数据相关性”、“负载平衡”等也涉及其中,下面我们就来讲讲各个因素为何会影响算例的“最佳并行规模”。

01 影响因素分析

1. 数据通信和同步

在并行计算中,不同处理单元之间需要进行数据通信和同步动作,而过多的核心数所产生的通信时间也是相当可观的,从而会影响到作业本身的计算效率和计算平台的整体性能,但是通信密集型任务需要更多的核心,最终的计算效率反而会下降,这个也需要在作业的配置中考虑到。

2. 负载平衡

在并行计算中,各个节点的负载分配可能不均衡,导致部分处理单元负载过重,而部分处理单元空闲,从而影响到计算效率。

3. 数据相关性

并行计算中的数据相关性可能导致处理单元之间的依赖关系,限制了并行度的提高,从而影响性能。

4. 潜在的竞争和瓶颈

在并行计算中,可能存在共享资源的竞争和瓶颈,如内存带宽、I/O带宽等,这些因素可能限制并行计算的性能。

5. 算法设计和并行化的复杂性

一些算法并不容易并行化,或者其并行化的复杂性较高,这可能导致并行计算的效率不高。

02 最佳并行规模分析——以“汽车碰撞分析”为例

车辆模型包括数百个部件,如车身、座椅、安全带、气囊等。碰撞分析的模型需要考虑所有这些部件的相互作用。

在汽车碰撞分析中,采用并行计算可以显著缩短求解时间,但同时也需要注意优化计算性能。根据计算节点和核心数量合理分配任务,避免资源浪费,并通过调整网格划分,确保计算负载在所有节点间平衡分配,减少计算瓶颈。

配置更多算力核心后,计算效率下降原因分析如下:

1. 负载不均衡

当并行规模过大时,各个计算节点之间的负载分配可能变得不均衡,部分节点计算任务过重,而其他节点则处于空闲状态,导致整体计算效率下降。

2. 通信开销增加

过多的并行核心会导致通信频率和复杂度增加,通信开销增大,从而拖慢计算速度。

3. 内存管理问题

在大规模并行计算中,内存分配和管理变得更加复杂,可能出现内存不足或内存访问冲突等问题,影响计算效率。

在实际测试中,使用不同规模的计算资源对同一组LS-DYNA任务进行运算,结果如下:

本地计算资源:

使用32、48、64核计算资源,耗时分别为821、566、439分钟。

注:本地资源有限,无法提供更多资源测试,共进行了3次作业提交,总计耗时1826分钟。

云端计算优化型实例:

使用32、48、64、128、256核计算资源,耗时分别为662、458、375、299、321分钟。

注:云平台资源充足,可同时进行多个作业的提交和计算,即耗时662分钟得出所有结果(测试效率提升约64%),得出该作业最佳并行规模为128核。

03 计算效率瓶颈解决方案

方案一:多次作业并行运算,找出合适运算规模

不同的大规模作业需要不同的优化方式,其中包括优化数据读写策略、优化网格划分、找到合适的最佳并行规模。

方案二:在线云平台解决方案

SimForge™高性能仿真云平台可以在线提供以下资源:

① 在线图形界面

② 海量软件提供计算支持

③ 多个大算力作业同步计算

④ 数据实时同步,快速展示传输

Ansys最新报告找到阻碍仿真效率提升“元凶”,竟然是…… 工业仿真软件大佬Ansys又出报告了。 主题是研究高性能计算在工程仿真中的应用情况。 调研委托Peerless Research Group进行,包括仿真研发和设计工程师、工程经理、IT经理和高管,一共747人。 老规矩,先看几个重要结论—— 缩短设计周期是一半以上用户在工作中面临的最大挑战; 超过五分之一的人表示,他们最重要、最频繁的仿真必须通宵运行至少9至48个小时以上(2014年为近四分之一); 由于周转时间的限制,大约三分之一的人降低了几乎所有模型的大小或精确度; 使用云资源的人越来越多。超过四分. 阅读详情

相关推荐

Ansys Lumerical FDTD算法计算特点分析及计算设备硬件配置推荐

目前 NVIDIA CUDA计算卡可用于Lumerical FDTD计算,但建议使用高端计算卡(如 A100、H100、RTX 4090)以获得最佳性能。单张高端 GPU(A100/H100/4090)可以加速,H100 80GB可处理约2亿网格(FP32精度),但大规模计算仍依赖 CPU。如需处理超大规模仿真(如光子集成电路全芯片分析),建议分布式FDTD(D-FDTD)解决方案。上述所有配置,代表最新硬件架构,同时保证是最完美,最快,如有不符,可直接退货。

qq_39020390的博客 2518

用新服务器从零开始部署 DolphinDB

本文主要介绍在新服务器部署 DolphinDB 时需要注意哪些系统配置,以及如何选择 DolphinDB 部署方式以符合业务需求。合适的系统配置可以提高 DolphinDB 系统的稳定性和可维护性,而合适的部署方式可以提高业务执行的效率。

DolphinDB智臾科技 1574

分子动力学仿真软件:GROMACS_(14).常见问题与解决方案

在使用分子动力学仿真软件进行二次开发时,经常会遇到一些技术问题。本节将详细介绍一些常见的问题及其解决方案,帮助开发者更高效地进行开发工作。

kkchenjj的博客 1240

并行数目与并形体对运行效率的影响

接下来再做一个测试,将并行和串行的循环次数设置为100,即将上例的main函数中: for(int i = 0; i < 10000;i++) 更改为: for(int i = 0; i < 100;i++) 然后分别运行10次,其结果如下表所示: 次数 串行 并行 1 0.00285003 0.007350087...

yuanlanxiaup 599

fluent计算cpu核心数和内存数的配比多少最好?-常规工程计算时,建议每核心分配 4~6 GB 内存。如果做大规模并行或大网格模型,则建议提升至 8 GB 或以上每核心。

fluent计算cpu核心数和内存数的配比多少最好?在使用 ANSYS Fluent 进行数值模拟时,CPU核心数与内存(RAM)之间的配比直接影响计算效率和稳定性。一个合理的配比可以避免计算过程中频繁地进行内存交换(paging),提升并行效率。以下是业界推荐和实测经验总结:双路CPU节点(如双Xeon):确保内存为通道对称,否则访问效率会下降;Fluent并行效率不是线性增长,超过一定核心数后会因通信开销反而减速(一般64核以上需InfiniBand);内存优先 vs 核心优先:对于大模型(高网格数),

qq_15963745的博客 1886

电芯外观及体系设计(Cell Design)-①容量平衡设计(Cell Balance Design)

全面获取并正确解读客户需求,将需求进行分解和预判,结合公司现有资源、技术,给出设计方案。一个优秀的电芯设计方案,应该是稳健的,可操作的,满足客户需求的同时,并能为公司带来较多利润。电芯设计需同时考虑周期,性能,品质,加工性,成本,及安全与稳健性。设计人员时刻要有成本控制观念,但利润则是由公司战略所决定。

FDC1303864002的博客 1352

获得最佳 FDTD 性能

线程数乘以进程数必须等于任何给定机器上可用的 CPU 核心总数。点击 FDTD Solutions 顶部菜单栏上的资源按钮;

博客 578

基于OpenMV与双舵机云台的激光追踪系统实战解析

本文详细解析了基于OpenMV摄像头与双舵机云台的激光追踪系统设计与实现。从硬件选型、图像识别算法到PID控制逻辑,全面介绍了如何构建一个高效稳定的激光追踪系统,并分享了电子设计竞赛中的实战经验与调试技巧。该系统在智能玩具、安防监控及教学演示等领域具有广泛应用前景。

prometheus9mon的博客 261

ansys使用更多内存和CPU

from http://blog.sina.com.cn/s/blog_4bcb487201000aa9.html 1、bcsoption 命令 bcsoption,,force,memory size(mb为单位),强制使用制定的内存大小 bcsoption,,incore   核内求解,一般速度较快 2、如果多核的话,直接用/config,nproc 命令制定所要使用的cpu数量 多用核内求...

SmileMoon's Home 5928

VLM,VLA,VLN的区别与联系

VLM 提供了理解世界的“眼睛和大脑”,VLN 赋予了这个智能体在空间中“移动的双腿”,而 VLA 则进一步赋予了它“灵巧的双手”来改变世界。三者共同构成了一个完整具身智能体的核心能力模块。

l0409044222的博客 1311

5个免费股票数据API实测对比:从AkShare到BaoStock,哪个最适合你的AI量化项目?

本文深度评测了AkShare、BaoStock、yfinance、Alpha Vantage和EOD Historical Data这五个免费股票数据API,从数据质量、覆盖范围、更新频率、稳定性及易用性进行对比。针对AI量化项目,文章提供了详细的选型策略,帮助开发者根据项目阶段与需求,精准选择最适合的数据源,并强调了多源验证与数据清洗的重要性。

weixin_29290947的博客 5078

仿真干货|算例核心数越多反而越慢?一篇文看懂“最佳并行规模

影响计算效率的因素除了“算法的优化”,像“数据相关性”、“负载平衡”等也涉及其中,下面我们就来讲讲各个因素为何会影响算例的“最佳并行规模”。

SIMFORGE的博客 494

从战略到执行:业务领先模型 BLM 的第一把钥匙「差距分析」

业务领先模型「BLM」(Business Leadership Model),俗称“别乱摸”,起源于哈佛商学院的战略理论研究,是一套完整的战略规划方法论。 后来被 IBM 发扬光大,IBM 在转型关键时期完成了对 BLM 模型的导入和创新,从此这个模型成为 IBM 中高层用于战略制定与执行联接的方法与平台。 再到后来华为花巨资引入了 BLM 模型,经过多年的应用,将其演化成了公司战略规划和落地的主要方法与流程,也因此被中国科技企业所认识和接受。 BLM 模型可以解决哪些问题? 在企业内,

产品线负责人 2400

HyperWorks进阶教程:OptiStruct计算提交

模型信息包括图2-9所示的节点总数、网格总数和模型自由度,图2-10所示的模型计算所需要的内存,图 2-11 所示的模型计算所需要的硬盘空间,计算结束后可通过图2-12查看整个模型的计算时长(ELAPSEDTIME)。.h3d文件中根据分析类型的不同,包含了结构的应力、应变、位移、加速度、能量、模态率、振型、温度、热流等信息。若希望在具体的某个时间点进行计算(比如当天中午12 点),则需要勾选图2-7中的Schedule delay选项,在弹出的对话框中设置相关参数,如图2-8所示。

ICAEgz的博客 5822

YOLOv11涨点改进| CVPR 2026 | 全网独家首发、特征融合改进篇| 引入SRFusion 空间细化多级融合,含多种创新融合改进,涨点可直接发论文,适合裂缝图像检测,小目标检测任务高效涨点

🔥本文提出SRFusion空间细化多级融合模块,用于改进YOLOv11网络模型。该模块通过高分辨率特征引导低分辨率语义特征的融合,利用空间注意力机制对上采样后的特征进行加权细化,增强多尺度特征间的空间细节交互。SRFusion模块能够提升模型对目标区域的表达能力,有效改善小目标、密集目标及复杂背景场景下的检测效果,同时保持YOLOv11的高效性与实时检测性能。文章详细介绍了模块结构、实现原理、核心代码及在YOLOv11中的三种配置方法,为模型优化提供了创新解决方案。

Ai缝合怪、助力小伙伴高效发论文 147

Android性能优化之Android Profiler

在移动应用开发中,打造一个流畅、省电且不卡顿的用户体验是至关重要的。然而,随着应用功能的日益复杂,内存泄漏、CPU暴涨、网络卡顿以及电量消耗过快等问题常常化身为隐形杀手,悄悄吞噬着用户体验。为了帮助开发者精准定位并解决这些性能瓶颈,谷歌在Android Studio中集成了一款强大的一站式性能分析工具Android Profiler。Android Profiler作为Android Studio内置的实时数据可视化工具,支持运行在Android 5.0及更高版本的设备上。

xiangzhihong8的专栏 200

测试报告丨DolphinDB与MongoDB在时序数据上的对比测试

DolphinDB和MongoDB都是为大数据而生的数据库。但是两者有这较大的区别。前者是列式存储的多模型数据库,主要用于结构化时序数据的高速存储、查询和分析。后者是文档型的NoSQL数据库,可用于处理非结构化和结构化的数据,可以根据键值快速查找或写入一个文档。MongoDB有着自己最合适的应用场景。但是市场上缺少优秀的大数据产品,不少用户试图使用MongoDB来存储和查询物联网和金融领域的结构化时序数据。本测试的目的是评估MongoDB是否适合此类海量时序数据集。 时间序列数据库DolphinDB和Mo

DolphinDB智臾科技 1112

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ANSYS并行计算设置方法指南:提升计算效率的利器

ANSYS并行计算设置方法指南:提升计算效率的利器 【下载地址】ANSYS并行计算设置方法指南 本指南详细介绍了ANSYS并行计算的设置方法,帮助用户高效利用科学计算资源。内容包括并行计算的基础概念、环境搭建、参数优化及实际案例解析,旨在提升工程仿真的计算效率。用户只需下载并按照教程步骤操作,即可快速掌握并行计算技巧。使...

gitblog_06757的博客 953

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

更安全,更省心丨DolphinDB 数据库权限管理系统使用指南

DolphinDB 对权限管理进行了升级,自此权限控制更精确、更完善、更方便啦~

DolphinDB智臾科技 1651

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Spring Boot 数据源与 MyBatis(-Plus) 自定义配置详解

本文详解 Spring Boot 中单数据源环境下 HikariCP 与 MyBatis-Plus 的自定义配置。通过手动声明 SqlSessionFactory,实现下划线转驼峰、日志输出、一级缓存策略等精细化控制。结合 HikariCP 核心参数调优(如最大连接数、连接生命周期),确保高性能与稳定性。适用于仅需访问单一数据库的场景,避免多数据源复杂性,兼顾性能与可维护性。

BADAO_LIUMANG_QIZHI的博客 195

在Codex 让AI模型 拥有长期智能记忆

本文介绍Claude-Mem V15新功能——智能记忆召回,解决AI遗忘、重复提示、执行不一致等问题。通过本地部署claude-mem,实现自动记录决策(如数据库选型)、跨会话智能召回,支持记忆写入、检索、遗忘全流程闭环。相比传统记忆方案,其基于Hooks自动捕获工具调用,结构化存储,可追溯、可共享、可清理,显著提升工程效率与协作一致性,是长期项目中理想的“工作黑匣子”与“工程脑”。

米莱虾 264

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 117

Docker Compose:搭建本地多服务开发环境

从一个 Java API、PostgreSQL 和 Redis 开始,配置服务名、端口、环境变量、健康检查、数据卷和依赖关系。理解 Compose 文件如何被解析、项目如何隔离,以及哪些数据不能依赖“重建容器”保留,能够把个人开发环境整理成团队可复用的启动入口。

m0_62221377的博客 426

45-存储过程与函数

匿名块跑完就没了,想下次再用只能复制粘贴。给块起个名字存进数据库,就成了存储过程与函数:一次编译、处处调用、权限收口,还能让 Java 侧少拼 SQL。这篇讲封装、调用、限制与排错的完整套路。CREATE OR REPLACE 覆盖式创建,事务由调用方控制;参数三模式 IN 只进、OUT 只出、IN OUT 双向,OUT 参数调用时要备好变量接;调用三姿势 EXEC、CALL、匿名块,命名传参=>最清晰;函数必有 RETURN,想在 SQL 里调用就不能碰 DML 和事务控制;

yuhou25的博客 152
上一篇: 仿真干货|云端CAE实战——OpenFOAM 建筑风环境仿真
下一篇: 技术分享︱基于SAMR网格自适应与AI智能求解技术的高保真流场模拟
神工坊
博客等级 码龄4年 503粉丝 178原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值