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

Visual Studio 2022 C++ gRPC 环境搭建

文章目录

      • 1、gRPC 安装
      • 2、创建项目
        • 2.1、创建 “空的解决方案”
        • 2.2、新建 gRPCServer 和 gRPCClient 项目
        • 2.3、创建 `proto` 文件
      • 2、为 gRPC 服务端和客服端项目配置 protobuf 编译
        • 2.1、protobuf 配置
        • 2.2、gRPCServer 项目配置
        • 2.3、gRPCClient 项目配置
      • 3、测试
        • 3.1、启动服务端程序
        • 3.2、启动客户端程序

1、gRPC 安装

本文使用 vcpkg 安装 gRPC,首先确保 Windows 系统中已经安装了 vcpkg。

在 vcpkg 安装路径下启动 cmd 终端,并输入如下安装命令:

 .\vcpkg.exe install grpc:x64-windows

经过一段时间的安装后,执行如下命令,将 vcpkg 集成到 Visual Studio 中:

 .\vcpkg.exe integrate install

2、创建项目

本文介绍的是 C++ gRPC 测试环境搭建流程,为了使用方便,服务器程序和客户端程序都放在一个解决方案中,这和实际项目程序组织形式有所不同。首先创建一个空解决方案,然后添加服务器项目和客户端项目。具体流程可以参考下文描述:

2.1、创建 “空的解决方案”

打开 Visual Studio 2022,选中 C++ 空项目

在这里插入图片描述

输入项目名称,创建新的项目:

在这里插入图片描述

生成的新项目解决方案如下图所示:
在这里插入图片描述

右键选中 “gRPCDemo” ,选择 “移除”:

在这里插入图片描述

至此,生成了 “空的解决方案”,如下图所示。
在这里插入图片描述

2.2、新建 gRPCServer 和 gRPCClient 项目

右键选中 “解决方案 ‘gRPCDemo’(0 个项目)",选中 "添加”,再选中 “新建项目(N)…”:
在这里插入图片描述

选择 “控制台应用”,分别创建服务端项目和客户端项目。
在这里插入图片描述

至此,服务端项目 gRPCServer 和客服端项目 gRPCClient 已经创建成功,如下图所示:
在这里插入图片描述

其中,gRPCServer 服务端程序如下:

#include <iostream>
#include <memory>
#include <string>
#include <grpcpp/grpcpp.h>
#include "greet.grpc.pb.h" // 自动生成的头文件using grpc::Server;
using grpc::ServerBuilder;
using grpc::ServerContext;
using grpc::Status;
using greet::Greeter;
using greet::HelloRequest;
using greet::HelloReply;// 实现 Greeter 服务接口
class GreeterServiceImpl final : public Greeter::Service {Status SayHello(ServerContext* context, const HelloRequest* request,HelloReply* reply) override {std::string prefix("Hello ");reply->set_message(prefix + request->name());return Status::OK;}
};void RunServer() {std::string server_address("0.0.0.0:50051");GreeterServiceImpl service;ServerBuilder builder;// 监听指定地址和端口,使用不安全的连接 (生产环境应使用安全连接)builder.AddListeningPort(server_address, grpc::InsecureServerCredentials());// 注册服务实现builder.RegisterService(&service);// 组装并启动服务器std::unique_ptr<Server> server(builder.BuildAndStart());std::cout << "Server listening on " << server_address << std::endl;// 阻塞等待服务器关闭server->Wait();
}int main(int argc, char** argv) {RunServer();return 0;
}

其中,**gRPCClient ** 客户端程序如下:

#include <iostream>
#include <memory>
#include <string>
#include <grpcpp/grpcpp.h>
#include "greet.grpc.pb.h" // 自动生成的头文件using grpc::Channel;
using grpc::ClientContext;
using grpc::Status;
using greet::Greeter;
using greet::HelloRequest;
using greet::HelloReply;class GreeterClient {
public:GreeterClient(std::shared_ptr<Channel> channel): stub_(Greeter::NewStub(channel)) {}// 发送请求并接收响应std::string SayHello(const std::string& user) {HelloRequest request;request.set_name(user);HelloReply reply;ClientContext context;// 发起 RPC 调用Status status = stub_->SayHello(&context, request, &reply);// 处理 RPC 调用的状态if (status.ok()) {return reply.message();} else {std::cout << status.error_code() << ": " << status.error_message()<< std::endl;return "RPC failed";}}private:std::unique_ptr<Greeter::Stub> stub_;
};int main(int argc, char** argv) {// 创建到服务器的连接通道 (使用不安全的连接)std::string target_str = "localhost:50051";GreeterClient greeter(grpc::CreateChannel(target_str, grpc::InsecureChannelCredentials()));// 发送请求std::string user("world");std::string reply = greeter.SayHello(user);std::cout << "Greeter received: " << reply << std::endl;std::cout << "Finished" << std::endl;return 0;
}
2.3、创建 proto 文件

右键选中 解决方案 ‘gRPCDemo’ ,选中 添加,选中 新建解决方案文件夹(D),命名为 “Protos” ,操作步骤如下图所示:
在这里插入图片描述

添加 proto 文件,右键选中 “Protos 文件夹”,选中 添加(D),选中 新建项(W)…
在这里插入图片描述

选择 “文本文件”,命名为: greet.proto :
在这里插入图片描述

其中,greet.proto 文件内容为:

syntax = "proto3";option csharp_namespace = "GrpcExample";package greet;// The greeting service definition.
service Greeter {// Sends a greetingrpc SayHello (HelloRequest) returns (HelloReply) {}
}// The request message containing the user's name.
message HelloRequest {string name = 1;
}// The response message containing the greetings.
message HelloReply {string message = 1;
}

2、为 gRPC 服务端和客服端项目配置 protobuf 编译

2.1、protobuf 配置

右键选中 gRPCServer 项目,添加 现有项

在这里插入图片描述

选中 greet.proto 文件,将 greet.proto 文件添加到 gRPCServer 项目中:

在这里插入图片描述

2.2、gRPCServer 项目配置

下面以 gRPCServer 项目配置流程为例,介绍具体的配置过程,gRPCClientgRPCServer 作同样的配置处理。

1、右键选中 gRPCServer 项目,选中属性 --> 常规 --> C++语言标准,选为 std:c++17 及以上

在这里插入图片描述

2、右键选中 greet.proto 文件,选中 属性,修改 常规 --> 项类型 的内容为: Protobuf Compile
在这里插入图片描述

右键选中 gRPCServer 项目,点击 生成

在这里插入图片描述

成功生成项目信息:

在这里插入图片描述

2.3、gRPCClient 项目配置

gRPCClientgRPCServer 作同样的配置处理。流程参考 2.2 gRPCServer 项目配置

3、测试

3.1、启动服务端程序

在这里插入图片描述

F5 启动服务端程序,成功启动输出如下信息:

在这里插入图片描述

3.2、启动客户端程序

首先点击右侧 解决方案资源管理器,右键选中 gRPCClient 项目,点击 调试 --> 启动新实例(S)

在这里插入图片描述

客户端成功获取 gRPC 调用结果信息:

在这里插入图片描述

案例代码:https://download.csdn.net/download/Harrytsz/90220274

相关文章:

Visual Studio 2022 C++ gRPC 环境搭建

文章目录 1、gRPC 安装2、创建项目2.1、创建 “空的解决方案”2.2、新建 gRPCServer 和 gRPCClient 项目2.3、创建 proto 文件 2、为 gRPC 服务端和客服端项目配置 protobuf 编译2.1、protobuf 配置2.2、gRPCServer 项目配置2.3、gRPCClient 项目配置 3、测试3.1、启动服务端程…...

2024AAAI SCTNet论文阅读笔记

文章目录 SCTNet: Single-Branch CNN with Transformer Semantic Information for Real-Time Segmentation摘要背景创新点方法Conv-Former Block卷积注意力机制前馈网络FFN 语义信息对齐模块主干特征对齐共享解码头对齐 总体架构backbone解码器头 对齐损失 实验SOTA效果对比Cit…...

【Java从入门到放弃 之 final 关键字】

final 关键字 final 关键字final 字段final 函数列表中的参数final 方法final 类 final 关键字 Java中里面有final这个关键字&#xff0c;这个关键字总体上是用来表达” 不能被改变“ 这个意思的。我们使用这个关键字表达不能被改变&#xff0c;有两种使用场景&#xff0c;有三…...

【U8+】用友U8软件中,出入库流水输出excel的时候提示报表输出引擎错误。

【问题现象】 通过天联高级版客户端登录拥有U8后&#xff0c; 将出入库流水输出excel的时候&#xff0c;提示报表输出引擎错误。 进行报表输出时出现错误&#xff0c;错误信息&#xff1a;找不到“fd6eea8b-fb40-4ce4-8ab4-cddbd9462981.htm”。 如果您正试图从最近使用的文件列…...

文本区域提取和分析——Python版本

目录 1. 图像预处理 2. 文本区域提取 3. 文本行分割 4. 文本区域分析 5. 应用举例 总结 文本区域提取和分析是计算机视觉中的重要任务&#xff0c;尤其在光学字符识别&#xff08;OCR&#xff09;系统、文档分析、自动化数据录入等应用中有广泛的应用。其目标是从图像中提…...

数据库介绍(不同数据库比较)

文章目录 **一、关系型数据库&#xff08;RDBMS&#xff09;****1. MySQL****优点**&#xff1a;**缺点**&#xff1a;**适用场景**&#xff1a; **2. PostgreSQL****优点**&#xff1a;**缺点**&#xff1a;**适用场景**&#xff1a; **3. Oracle Database****优点**&#xff…...

注意力的简单理解,有哪些注意力(Attention)

注意力(Attention) 目录 注意力(Attention)掩码注意力机制自注意力、交叉注意力、掩码注意力的不同点适应场景及举例多头注意分层注意力(Hierarchical Attention)协同注意力(Co - Attention)自注意力(Self - Attention) 简单理解:自注意力就像是一个句子(或序列)内…...

基于Python的投资组合收益率与波动率的数据分析

基于Python的投资组合收益率与波动率的数据分析 摘要&#xff1a;該文通过研究马科维茨的投资组合模型&#xff0c;并将投资组合模型应用到包含6只金融股票的金融行业基金中。首先通过开源的财经接口Tushare获取股票原始数据&#xff0c;接着利用数据分析的黄金组合库&#xf…...

《Opencv》图像的旋转

一、使用numpy库实现 np.rot90(img,-1) 后面的参数为-1时事顺时针旋转&#xff0c;为1时是逆时针旋转。 import cv2 import numpy as np img cv2.imread(./images/kele.png) """方法一""" # 顺时针90度 rot_1 np.rot90(img,-1) # 逆时针90度…...

Python 22:注释

1. 定义&#xff1a; 用熟悉的语言对代码进行解释说明。注释不会被执行。 2. 注释分类 单行注释&#xff1a;只能对一行代码进行注释。放在要注释的代码后面&#xff0c;用#进行分隔&#xff0c;中间至少空2个空格&#xff0c;保证代码规范。 print("hello world10"…...

python:利用神经网络技术确定大量离散点中纵坐标可信度的最高集中区间

当我们有许多离散点并想要确定纵坐标在某个区间内的可信度时&#xff0c;我们可以使用神经网络模型来解决这个问题。下面是一个使用Python编写的示例代码&#xff0c;展示了如何使用神经网络来确定大量离散点中纵坐标可信度的最高集中区间。 import numpy as np from sklearn.…...

计算机软件保护条例

(2001年12月20日中华人民共和国国务院令第339号公布 根据2011年1月8日《国务院关于废止和修改部分行政法规的决定》第一次修订 根据2013年1月30日《国务院关于修改〈计算机软件保护条例〉的决定》第二次修订) 第一章 总则 第一条 为了保护计算机软件著作权人的权益&#…...

CM3/4启动流程

CM3/4启动流程 1. 启动模式2. 启动流程 1. 启动模式 复位方式有三种&#xff1a;上电复位&#xff0c;硬件复位和软件复位。 当产生复位&#xff0c;并且离开复位状态后&#xff0c;CM3/4 内核做的第一件事就是读取下列两个 32 位整数的值&#xff1a; 从地址 0x0000 0000 处取…...

gaussdb中怎么查询一个表有多少GB

在 GaussDB 中&#xff0c;你可以通过多种方法查询一个表的大小&#xff0c;包括使用系统视图和内置函数。以下是几种常见的方法&#xff1a; 1. 使用 pg_total_relation_size 函数 pg_total_relation_size 函数返回一个表及其所有索引和 TOAST 数据的总大小。 示例查询 SE…...

2025-01-06 Unity 使用 Tip2 —— Windows、Android、WebGL 打包记录

文章目录 1 Windows2 Android2.1 横版 / 竖版游戏2.2 API 最低版本2.3 目标帧率2.3.1 targetFrameRate2.3.2 vSyncCount2.3.3 Unity 默认设置以及推荐设置2.3.4 Unity 帧率托管 3 WebGL3.1 平台限制3.2 打包报错记录 13.3 打包报错记录 2 ​ 最近尝试将写的小游戏打包&#xff…...

OP-TEE环境飞腾密码引擎编程指南

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力&#xff0c;聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域&#xff0c;包含了应用使能套件、软件仓库、软件支持、软件适…...

解密Navicat密码(Java)

最近从Navicat换到了DBeaver&#xff0c;导出配置文件发现配置文件里的密码都是加密的&#xff0c;看网上的都是给的PHP代码&#xff0c;因为环境问题&#xff0c;就算是在线上运行的PHP代码也会报错&#xff0c;所以就把这段代码改成Java了。 package com.unicdata.system.con…...

apex安装

安装过程复杂曲折&#xff0c;网上说的很多办法&#xff0c;貌似成功了&#xff0c;实际还是没起作用。 先说成功过程&#xff0c;执行下面命令&#xff0c;安装成功&#xff08;当然&#xff0c;前提是你要先配置好编译环境&#xff09;&#xff1a; &#xff08;我的环境&a…...

常见的开源网络操作系统

常见的开源网络操作系统有很多,它们通常用于路由器、交换机、网络设备和服务器等场景,具有灵活、可定制、易于扩展的特点。以下是一些常见的开源网络操作系统: OpenWRT 用途:主要用于路由器、无线接入点和网络设备。提供了广泛的定制选项和高级功能,如防火墙配置、VPN 支持…...

2024年6月英语六级CET6听力原文与解析

目录 0 序言 1.Long Conversation(长对话) 1.1 Blender 搅拌机 1.2 村庄的改造变化 2.Passage 2.1 micro robots 微型机器人 2.2 elite sleeper 睡眠精英 3.Lecture 3.1 对自身观念变化的低察觉度及相关研究发现 3.2 美国母亲群体数量变化及母亲节消费趋势分析 3.3 …...

力扣2-回文数

一.题目 给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 回文数是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的整数。 例如&#xff0c;121 是回文&…...

基于springboot的网上商城购物系统

作者&#xff1a;学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等 文末获取“源码数据库万字文档PPT”&#xff0c;支持远程部署调试、运行安装。 目录 项目包含&#xff1a; 开发说明&#xff1a; 系统功能&#xff1a; 项目截图…...

业务日志设计

当一个项目足够大的时候&#xff0c;我们需要将统计系统完全独立出去&#xff0c;那么就无法避免数据采集的问题&#xff0c;我们可以在业务触发处增加log日志来记录当前变化的原始数据&#xff0c;提供统计系统进行采集 设计一个统计系统的日志记录机制时&#xff0c;主要需要…...

梯度下降方法

2.5 梯度下降方法介绍 学习目标 掌握梯度下降法的推导过程知道全梯度下降算法的原理知道随机梯度下降算法的原理知道随机平均梯度下降算法的原理知道小批量梯度下降算法的原理 上一节中给大家介绍了最基本的梯度下降法实现流程&#xff0c;本节我们将进一步介绍梯度下降法的详细…...

javascript

引入方式 JavaScript 程序不能独立运行&#xff0c;它需要被嵌入 HTML 中&#xff0c;然后浏览器才能执行 JavaScript 代码。通过 script 标签将 JavaScript 代码引入到 HTML 中&#xff0c;有两种方式&#xff1a; 内部方式 通过 script 标签包裹 JavaScript 代码 <!DO…...

大语言模型训练所需的最低显存,联邦大语言模型训练的传输优化技术

联邦大语言模型训练的传输优化技术 目录 联邦大语言模型训练的传输优化技术大语言模型训练所需的最低显存大语言模型训练所需的最低显存 基于模型微调、压缩和分布式并行处理的方法,介绍了相关开源模型及技术应用 核心创新点 多维度优化策略:综合运用基于模型微调、模型压缩和…...

二叉树的二叉链表和三叉链表

在二叉树的数据结构中&#xff0c;通常有两种链表存储方式&#xff1a;二叉链表和三叉链表。这里&#xff0c;我们先澄清一下概念&#xff0c;通常我们讨论的是二叉链表&#xff0c;它用于存储二叉树的节点。而“三叉链表”这个术语在二叉树的上下文中不常见&#xff0c;可能是…...

api开发如何在代码中使用京东商品详情接口的参数?

选择编程语言和相关工具 以 Python 为例&#xff0c;你可以使用requests库来发送 HTTP 请求获取接口数据。如果是 Java&#xff0c;可以使用OkHttp等库。 Python 示例 假设你已经安装了requests库&#xff0c;以下是一个简单的代码示例来获取和使用京东商品详情接口参数&#…...

Quartz如何实现分布式调度

系列文章目录 任务调度管理——Quartz入门 Quartz如何实现分布式控制 系列文章目录一、持久化二、分布式调度1. 表信息2. 调度器的竞争3. 触发器的分配 三、 总结 我们都说Quartz是个分布式调度框架&#xff0c;那么在分布式环境上&#xff0c;如何使得各个服务器上的定时任务…...

JUC--线程池

线程池 七、线程池7.1线程池的概述7.2线程池的构建与参数ThreadPoolExecutor 的构造方法核心参数线程池的工作原理 Executors构造方法newFixedThreadPoolnewCachedThreadPoolnewSingleThreadExecutornewScheduledThreadPool(int corePoolSize) 为什么不推荐使用内置线程池&…...

以柔资讯-D-Security终端文件保护系统 logFileName 任意文件读取漏洞复现

0x01 产品简介 D-Security终端文件保护系统是一套专注于企业文件管理效率与安全的解决方案,统对文件进行全文加密,而非仅在文件表头或特定部分进行加密,从而大大提高了文件的安全性,降低了被破解的风险。D-Security终端文件保护系统是被政府和国安局等情报单位唯一认定的安…...

【JavaScript】Set,Map,Weakmap

以下来源&#xff1a;九剑科技。 weakmap WeakMap是 ES6 中新增的一种集合类型&#xff0c;叫做“弱映射”&#xff0c;由于他的键引用的对象是弱引用&#xff0c;键所指向的对象可以被垃圾回收&#xff0c;可以防止内存泄露。 map ①Map是键值对的集合&#xff0c;键值不限…...

idea小操作

idea 所边定位到你目前阅读的代码 AltF1 或者 选择定位图标...

[tesseract]Deserialize header failed: FIRC.lstmf

tesseract5.0训练时候会提示 [INFO]cd /d D:\program\tesseract-ocr-lstm-train\data [INFO]D:\program\tesseract-ocr-lstm-train\Tesseract-OCR\tesseract.exe xiangjiao.tif xiangjiao -l eng --psm 7 lstm.train [INFO]Page 1 [INFO]Page 2 [INFO]Deserialize header fail…...

深度学习知识点:RNN

文章目录 1.简单介绍2.网络结构3.应对梯度消失 1.简单介绍 循环神经网络&#xff08;RNN&#xff0c;Recurrent Neural Network&#xff09;是一类用于处理序列数据的神经网络。与传统网络相比&#xff0c;变化不是特别大&#xff0c;不如CNN的变化那么大。 为什么要有循环神经…...

【数据可视化-11】全国大学数据可视化分析

&#x1f9d1; 博主简介&#xff1a;曾任某智慧城市类企业算法总监&#xff0c;目前在美国市场的物流公司从事高级算法工程师一职&#xff0c;深耕人工智能领域&#xff0c;精通python数据挖掘、可视化、机器学习等&#xff0c;发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…...

CSS:背景样式、盒子模型与文本样式

背景样式 背景样式用于设置网页元素的背景&#xff0c;包括颜色、图片等。 背景颜色 使用 background-color 属性设置背景颜色&#xff0c;支持多种格式&#xff08;颜色英文、十六进制、RGB等&#xff09;。 div {background-color: lightblue; }格式示例十六进制#ff5733R…...

学英语学压测:02jmeter组件-测试计划和线程组ramp-up参数的作用

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#xff1a;先看关键单词&#xff0c;再看英文&#xff0c;最后看中文总结&#xff0c;再回头看一遍英文原文&#xff0c;效果更佳&#xff01;&#xff01; 关键词 Functional Testing功能测试[ˈfʌŋkʃənəl ˈtɛstɪŋ]Sample样…...

环动科技平均售价波动下滑:大客户依赖明显,应收账款周转率骤降

《港湾商业观察》施子夫 2024年12月18日&#xff0c;浙江环动机器人关节科技股份有限公司&#xff08;以下简称&#xff0c;环动科技&#xff09;的上市审核状态变更为“已问询”&#xff0c;公司在11月25日科创板IPO获上交所受理&#xff0c;独家保荐机构为广发证券。 此次环…...

数据结构:LinkedList与链表—无头双向链表(二)

目录 一、什么是LinkedList&#xff1f; 二、LinkedList的模拟实现 1、display()方法 2、addFirst(int data)方法 3、addLast(int data)方法 4、addIndex(int index,int data)方法 5、contains(int key)方法 6、remove(int key)方法 7、removeAllKey(int key)方法 8、…...

『SQLite』解释执行(Explain)

摘要&#xff1a;本节主要讲解SQL的解释执行&#xff1a;Explain。 在 sqlite 语句之前&#xff0c;可以使用 “EXPLAIN” 关键字或 “EXPLAIN QUERY PLAN” 短语&#xff0c;用于描述表查询的细节。 基本语法 EXPLAIN 语法&#xff1a; EXPLAIN [SQLite Query]EXPLAIN QUER…...

计算机网络之---物理层的基本概念

物理层简介 物理层&#xff08;Physical Layer&#xff09; 是 OSI&#xff08;开放系统互联&#xff09;模型 中的第 1 层&#xff0c;它主要负责数据在物理媒介上的传输&#xff0c;确保原始比特&#xff08;0 和 1&#xff09;的传输不受干扰地从一个设备传送到另一个设备。…...

Elasticsearch:优化的标量量化 - 更好的二进制量化

作者&#xff1a;来自 Elastic Benjamin Trent 在这里&#xff0c;我们解释了 Elasticsearch 中的优化标量量化以及如何使用它来改进更好的二进制量化 (Better Binary Quantization - BBQ)。 我们的全新改进版二进制量化 (Better Binary Quantization - BBQ) 索引现在变得更强大…...

KBQA前沿技术

文章目录 KBQA面临的挑战基于模板的方法基于语义解析的方法基于深度学习的传统问答基于深度学习的端到端问答模型KBQA面临的挑战 目前还存在两个很大的困难阻碍着KBQA系统被广泛应用。一个困难是现有的自然语言理解技术在处理自然语言的歧义性和复杂性方面还显得比较薄弱。例如…...

patchwork++地面分割学习笔记

参考资料&#xff1a;古月居 - ROS机器人知识分享社区 https://zhuanlan.zhihu.com/p/644297447 patchwork算法一共包含四部分内容&#xff1a;提出了以下四个部分&#xff1a;RNR、RVPF、A-GLE 和 TGR。 1&#xff09;基于 3D LiDAR 反射模型的反射噪声消除 (RNR)&#xff…...

OSPF浅析

一、预习&#xff1a; 1、介绍&#xff1a; 是一种基于接口的典型的链路状态路由协议&#xff0c;协议号89&#xff0c;把大型网络分隔为多个较小、可管理的单元&#xff1a;Area&#xff0c;管理距离110&#xff1b;OSPF基于IP&#xff0c;使用了LSAck包来保证包数据的可靠性&…...

批量写入数据到数据库,卡顿怎么解决

在批量写入数据到数据库时,遇到卡顿或性能瓶颈是比较常见的问题。以下是一些可能的解决方案和优化策略,帮助你提高批量写入的性能: ### 1. **批量大小优化** - **调整批量大小**:尝试调整批量写入的数据量,找到一个平衡点。过大或过小的批量大小都可能影响性能。通常,批…...

Residency 与 Internship 的区别及用法解析

Residency 与 Internship 的区别及用法解析 在英文中&#xff0c;“residency” 和 “internship” 都与职业培训相关&#xff0c;但它们的使用场景和具体含义存在显著差异。本文将详细解析这两个词的区别&#xff0c;以及它们在不同语境下的应用。 Residency 的定义及使用场景…...

【数据结构-堆】力扣2530. 执行 K 次操作后的最大分数

给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你的 起始分数 为 0 。 在一步 操作 中&#xff1a; 选出一个满足 0 < i < nums.length 的下标 i &#xff0c; 将你的 分数 增加 nums[i] &#xff0c;并且 将 nums[i] 替换为 ceil(nums[i] / 3) 。 返回在 恰好…...

基于生成式对抗网络(GAN)的前沿研究与应用

引言 人工智能&#xff08;AI&#xff09;领域在过去几年中经历了快速的发展&#xff0c;尤其是深度学习的兴起带来了许多变革。其中&#xff0c;生成式对抗网络&#xff08;Generative Adversarial Network, GAN&#xff09;因其强大的生成能力成为了研究热点。自2014年Ian G…...