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

DP读书:鲲鹏处理器 架构与编程(十四)ACPI与软件

一分钟速通ACPI和鲲鹏软件移植

  • 操作系统内核
  • 鲲鹏软件移植
    • 鲲鹏软件移植流程
  • 编译工具选择
    • 编译参数移植案例
    • 源码修改案例
    • 鲲鹏分析扫描工具 Dependency Advisor
    • 鲲鹏代码迁移工具 Porting Advisor
  • 鲲鹏软件性能调优
    • 鲲鹏软件性能调优流程
    • CPU与内存子系统性能调优
    • 网络子系统性能调优
    • 磁盘I/O子系统性能调优
    • 应用程序性能调优
    • 基础软件性能调优
    • 鲲鹏性能优化工具 Tuning Kit

操作系统内核

ACPI(Advanced Configuration and Power Interface)
是一种由英特尔、微软、惠普、索尼等公司共同开发的电源管理标准。它提供了一种通用的电源管理接口,用于管理计算机系统的电源状态、性能和配置等方面。

在计算机系统中,ACPI负责处理电源管理事件,例如系统启动、关机、休眠、唤醒等。它还提供了对硬件设备、散热设备、电池和其他设备的控制能力。

ACPI在计算机系统中扮演着重要的角色,它能够提高系统的能源效率和延长电池寿命,同时提供更好的系统性能和稳定性。

鲲鹏软件移植

鲲鹏软件移植流程

鲲鹏软件移植流程包括以下步骤:

  1. 准备JDK:安装ARM版本JDK。
  2. 配置环境变量:配置JDK路径等环境变量。
  3. 编译:Java源码生成字节码。
  4. 测试:启动Java程序,调试功能。

以上就是鲲鹏软件移植的完整流程

编译工具选择

编译工具的选择主要取决于你使用的编程语言和开发环境。以下是一些常见的编译工具:

  1. Microsoft Visual Studio:这是一个完整的开发工具集,适用于C/C++/C#等编程语言,适用于微软支持的所有平台。它包括了UML工具、代码管控工具、集成开发环境(IDE)等,是一个非常实用且强大的代码编写开发软件。
  2. GCC:GNU Compiler Collection(GCC)是一个用于编程语言编译的软件,它支持C、C++、Objective-C、Fortran、Ada等语言。
  3. Clang:Clang是一个基于LLVM的C/C++/Objective-C编译器,它主要用于优化编译效率和代码质量。
  4. Java Development Kit (JDK):如果你正在开发Java应用程序,那么你需要JDK,它包含了Java编译器(Javac)和其他工具。
  5. Python解释器和编译器:Python是一种解释型语言,因此它不需要编译器。但是,Python有各种解释器和编译器,如CPython、Jython、IronPython等。
    这只是其中的一部分,实际上还有很多其他的编译工具可供选择。你应该根据自己的具体需求和习惯来选择适合你的编译工具。

编译参数移植案例

在编译过程中,一些特定的编译参数可能会影响到编译的结果和适应性。以下是一些编译参数的案例,这些参数在移植过程中可能会起到关键作用:

1. -march 和 -mtune:这两个参数用于指定目标处理器架构。例如,-march=native 将使编译器优化为运行在本地硬件上,而 -march=x86_64 将优化为运行在64位x86处理器上。
2. -fPIC (Position-Independent Code):该参数用于生成位置无关的代码,这在实现共享库时非常重要。
3. -I:该参数用于指定头文件的搜索路径。在移植过程中,可能需要修改此参数以适应新的环境。
4. -L:该参数用于指定库文件的搜索路径。同样,在移植过程中,可能需要修改此参数。
5. -l:该参数用于指定要链接的库。这可能涉及到链接到不同的库文件,以适应新的环境。
6. -D:该参数用于定义宏。在移植过程中,可能需要定义新的宏以适应新的环境。

请注意,以上只是一些常见的编译参数示例,实际上还有许多其他的编译参数可以在移植过程中使用。具体的参数选择将取决于你的需求和目标平台的具体情况。

源码修改案例

源码修改案例主要是针对特定的需求或问题,对程序源代码进行修改和优化。以下是一个简单的源码修改案例:

假设我们有一个C语言程序,其中有一个函数名为 calculate_average,它接收一个整数数组和数组的长度作为输入,计算数组的平均值并返回结果。

double calculate_average(int* arr, int length) {double sum = 0.0;for (int i = 0; i < length; i++) {sum += arr[i];}return sum / length;
}

现在我们想要修改这个函数,使其能够忽略数组中的任何负数并直接跳过计算。我们可以添加一个简单的判断语句来实现这个功能。

double calculate_average(int* arr, int length) {double sum = 0.0;for (int i = 0; i < length; i++) {if (arr[i] >= 0) {sum += arr[i];}}return sum / length;
}

通过这个修改,函数现在只会计算数组中的非负数,并返回它们的平均值。这可以应用于任何包含负数的数组,以忽略它们并获得更准确的结果。

请注意,这只是一个简单的例子,实际的源码修改可能会更加复杂和涉及更多的细节。在修改源代码之前,建议进行充分的测试和备份(在虚拟机上跑没问题再上),以确保修改不会引入错误或破坏原始功能。

鲲鹏分析扫描工具 Dependency Advisor

Dependency Advisor 是一款可以简化客户应用迁移到鲲鹏服务器过程的工具。它主要安装在X86服务器上,用于分析可移植性和移植投入。该工具支持检查用户软件资源包(RPM、JAR、TAR、zip、gzip 文件)中包含的 SO 依赖库,并评估 SO 依赖库的可移植性;检查指定的用户软件安装路径下的 SO 依赖库,并评估 SO 依赖库的可移植性;检查用户软件 C/C++ 软件构建工程文件,并评估该文件的可移植性;以及检查用户软件 C/C++ 源码,并评估软件源文件的可移植性。

此外,Dependency Advisor 会自动分析并输出指导报告,提供软件移植报告以及移植工作量评估。它还支持命令行方式和 Web 两种工作模式。

鲲鹏代码迁移工具 Porting Advisor

Porting Advisor 是一款可以帮助开发者将应用从 x86 平台迁移到鲲鹏平台的代码迁移工具。具体功能包括:

  1. 分析可迁移性:Porting Advisor 可以分析用户的源代码以及相关依赖,判断其是否可以迁移到鲲鹏平台。
  2. 自动分析:Porting Advisor 可以自动分析出需要修改的代码内容,并给出修改建议。
  3. 提供指导:Porting Advisor 可以帮助开发者解决在迁移过程中遇到的问题,提供相应的解决方案。

使用 Porting Advisor 进行代码迁移可以降低人工排查的工作量,提高整体迁移效率。

分析可迁移性
自动分析
提供指导

鲲鹏软件性能调优

鲲鹏软件性能调优流程

鲲鹏软件性能调优流程包括以下步骤:

  1. 建立基准:在优化或监视开始之前,首先要建立一个基准数据和优化目标。这包括硬件配置、组网、测试模型、系统运行数据(CPU/内存/IO/网络吞吐/响应延时等)。我们需要对系统做全面的评估和监控,才能更好的分析系统性能瓶颈,以及实施优化措施后系统的性能变化。优化目标即是基于当前的软硬件架构所期望系统达成的性能目标。
  2. 压力测试与监视瓶颈:使用峰值工作负载或专业的压力测试工具,对系统进行压力测试。使用一些性能监视工具观察系统状态。在压力测试期间,建议详细记录系统和程序的运行状态,精确的历史记录将更有助于分析瓶颈和确认优化措施是否有效。
  3. 性能分析:基于压力测试的结果,进行性能分析,找出性能瓶颈。这包括查找CPU、内存、I/O、网络等方面的瓶颈。
  4. 优化:根据性能分析的结果,采取相应的优化措施。优化的具体方法可能因系统和应用的不同而有所不同。
  5. 再测试:在实施优化措施后,需要重新进行压力测试和性能监视,确认优化效果。
  6. 迭代:性能调优是一个反复迭代的过程,需要持续进行,不断优化系统的性能。

以上就是鲲鹏软件性能调优的一般流程,具体实施时可能需要根据具体情况进行调整。

循环
建立基准
压力测试与监视瓶颈
性能分析
优化
再测试
迭代

CPU与内存子系统性能调优

为了进行CPU和内存子系统的性能调优,可以采取以下措施:

  1. CPU方面:

    • 多线程优化:合理地利用多线程,将计算任务划分为多个线程并行执行,充分利用多核CPU的性能。
    • 减少上下文切换:减少线程之间的频繁切换,避免由于上下文切换带来的开销。
    • 缓存优化:充分利用CPU缓存,避免缓存未命中带来的性能损失。例如,使用局部性原理优化数据访问模式,减少缓存未命中。
  2. 内存方面:

    • 内存分配优化:合理设置内存分配策略,避免频繁的内存分配与释放。可以采用对象池、内存池等技术来优化内存管理。
    • 内存访问模式优化:充分利用局部性原理,优化内存的访问模式。例如,通过连续访问、对齐访问等方式减少内存访问的随机性。
    • 内存压缩与分片:对于内存占用较大的数据结构或对象,可以考虑进行内存压缩或分片,以减少内存占用和提高访问效率。
CPU方面优化
多线程优化
减少上下文切换
缓存优化
内存方面优化
内存分配优化
内存访问模式优化
内存压缩与分片

另外,还可以通过性能监控和性能分析工具,对CPU和内存子系统进行监测和分析,找出性能瓶颈,并采取相应的优化策略。不同的应用场景和需求可能需要采取不同的优化手段,因此建议结合具体情况进行调优,并进行性能测试和评估,以验证优化效果。

网络子系统性能调优

对于网络子系统的性能调优,可以采取以下措施:

  1. 减少网络延迟:

    • 使用高性能网络设备:选择高性能的网络交换机、路由器等网络设备,以减少数据包的传输延迟。
    • 使用更快速的网络协议:例如,采用更快速的传输协议(如TCP Fast Open、QUIC)来减少握手延迟和连接建立时间。
    • 优化网络拓扑结构:合理规划网络拓扑结构,减少数据包的传输距离,降低网络延迟。
  2. 提高网络带宽:

    • 网络负载均衡:通过配置负载均衡设备或软件,将网络流量均匀分配到多个服务器上,提高整体网络带宽。
    • 数据压缩与加速:使用数据压缩和加速技术,减少数据传输量,从而提高可用带宽。
    • 增加带宽容量:升级网络设备,增加带宽容量,以满足高并发的网络请求。
  3. 优化网络协议和策略:

    • TCP/IP参数调优:根据具体应用场景,调整TCP/IP协议的参数,如窗口大小、拥塞控制算法等,以提高网络传输效率。
    • 数据包优先级管理:通过配置网络设备的QoS(Quality of Service)功能,对不同类型的数据包进行优先级管理,确保重要数据的及时传输。
  4. 缓存与缓冲区管理:

    • CDN加速:使用内容分发网络(CDN)来缓存静态资源,加快数据的传输速度。
    • 缓存技术应用:根据实际需求,合理地使用缓存技术,将热门数据、查询结果等缓存在内存中,加快数据访问速度。
    • 缓冲区大小优化:针对网络设备的缓冲区大小进行优化,避免过大或过小的缓冲区导致的性能问题。

此外,还可以通过监控和分析网络流量、延迟等指标,找出网络性能瓶颈,并进行相应的调优策略。综合考虑应用程序的特点、网络环境以及业务需求,选择合适的调优方案,并进行性能测试和评估,以验证优化效果。

CPU方面优化
内存方面优化
CPU多线程优化
减少上下文切换
缓存优化
内存分配优化
内存访问模式优化
内存压缩与分片

磁盘I/O子系统性能调优

对于磁盘I/O子系统的性能调优,可以采取以下措施:

优化磁盘I/O性能的常见措施包括:

  1. 使用RAID技术:RAID技术可以提供更高的磁盘读写性能和冗余容错能力。

  2. 块大小优化:根据应用程序的访问模式和数据块大小,调整磁盘块的大小以提高磁盘I/O性能。

  3. 操作系统参数调优:操作系统参数调整相关参数来改善磁盘I/O性能。

  4. 文件系统选择与优化:选择适合特定应用场景的文件系统,并进行相应的优化。

  5. I/O缓存与缓冲区管理:I/O缓存和缓冲区管理技术来减少磁盘I/O操作次数。

  6. 应用程序优化:应用程序优化,减少不必要的磁盘I/O操作。

  7. 磁盘性能监控与故障诊断:磁盘性能监控磁盘的性能指标,及时发现潜在问题,并采取相应的故障诊断和修复措施。

这些措施综合起来可以提升磁盘I/O子系统的性能和可靠性。但需要根据具体情况进行调优,并进行性能测试和评估,以验证优化效果。

应用程序性能调优

对于应用程序的性能调优,可以采取以下措施:

  1. 代码优化:优化算法和数据结构和提高代码执行效率。
  2. 数据库优化:数据库索引优化和提高数据检索操作。
  3. 缓存技术应用:使用缓存技术和提高读取速度。
  4. 网络通信优化:减少网络请求次数和提高速度。
  5. 性能监控与调试:使用性能监控工具和评估系统的性能表现。
  1. 代码优化:

    • 优化算法和数据结构:选择高效的算法和数据结构,减少不必要的计算和内存消耗,提高代码执行效率。
    • 减少资源占用:及时释放不再使用的资源,避免资源泄露。合理使用内存、文件句柄、数据库连接等资源,避免资源瓶颈。
    • 并发编程优化:合理使用多线程、多进程或异步编程模型,利用多核处理器和异步操作提高并发性能。
  2. 数据库优化:

    • 数据库索引优化:分析数据库查询的频率和模式,创建适当的索引来加速数据检索操作。
    • 数据库连接管理:合理维护和管理数据库连接,减少连接的建立和关闭开销。
    • 批量操作和事务管理:将多个数据库操作批量提交或使用事务进行管理,减少单次数据库交互的次数,提高效率和数据一致性。
  3. 缓存技术应用:

    • 使用缓存技术:将频繁读取的数据缓存在内存中,减少对底层存储系统(如数据库)的访问,提高读取速度。
    • 合理设置缓存策略:根据数据的更新频率和重要性,设置合适的缓存策略,如缓存过期策略、LRU(最近最少使用)策略等。
  4. 网络通信优化:

    • 减少网络请求次数:合并多个网络请求、采用批量操作,减少网络开销和延迟。
    • 压缩和加速数据传输:使用数据压缩和加速技术,减少网络传输数据量,提高速度。
  5. 性能监控与调试:

    • 使用性能监控工具:通过监控工具来获取应用程序的性能指标,如CPU使用率、内存占用、数据库查询时间等,找出性能瓶颈和潜在问题。
    • 进行性能测试:模拟实际使用场景,进行负载测试和性能测试,评估系统的性能表现,及时发现和解决性能问题。

除了以上措施,还可以根据具体应用场景和需求进行针对性的优化。关注应用程序的瓶颈和低效点,不断进行测试和改进,以提高应用程序的性能和响应速度。同时,注意平衡性能调优和可维护性之间的关系,避免过度优化导致代码难以理解和维护。

graph LR
subgraph 代码优化A[优化算法和数据结构]B[减少资源占用]C[并发编程优化]
subgraph 数据库优化D[数据库索引优化]E[数据库连接管理]F[批量操作和事务管理]
subgraph 缓存技术应用G[使用缓存技术]H[合理设置缓存策略]
subgraph 网络通信优化I[减少网络请求次数]J[压缩和加速数据传输]
subgraph 性能监控与调试K[使用性能监控工具]L[进行性能测试]
A -->|包含| B
B -->|包含| C
C -->|属于| 代码优化
D -->|包含| E
E -->|包含| F
F -->|属于| 数据库优化
G -->|包含| H
H -->|属于| 缓存技术应用
I -->|包含| J
J -->|属于| 网络通信优化
K -->|包含| L
L -->|属于| 性能监控与调试

基础软件性能调优

基础软件(如操作系统、数据库、Web服务器等)的性能调优,可以采取以下措施:

  1. 增加硬件资源:

    • 增加CPU、内存和磁盘等硬件资源,以提高基础软件的执行速度和并发处理能力。
    • 使用更快的存储设备或网络传输设备,以提高数据的访问速度和传输效率。
  2. 调整软件参数:

    • 根据应用的工作负载和硬件配置,调整操作系统或数据库的参数,以达到最优性能。
    • 对于Web服务器,可以调整连接池大小、缓存策略、请求过滤等参数,以提高并发处理和响应速度。
  3. 优化软件架构和设计:

    • 应用合适的软件设计模式和开发框架,以提高代码复用性和可维护性。
    • 良好的软件架构可以提高基础软件的并发处理能力和可扩展性。
  4. 资源的合理利用:

    • 对于数据库系统,可以通过使用数据库缓存、合理索引等手段,减少访问磁盘的次数,提高数据访问速度。
    • 对于Web服务器,可以使用缓存技术对经常访问的数据进行缓存,降低数据库访问的频率。
  5. 进行性能测试和优化:

    • 对基础软件进行负载测试和性能测试,找出瓶颈和性能瓶颈。
    • 评估不同参数组合或优化技术的性能效果,选择最优方案。
  6. 系统监控和调试:

    • 通过系统监控工具实时监控系统的性能、资源利用率等指标,在系统出现异常时及时进行调试和修复。
    • 收集日志信息,及时发现潜在问题,并对系统进行诊断。
graph LRsubgraph 增加硬件资源A[增加CPU、内存和磁盘等硬件资源]B[使用更快的存储设备或网络传输设备]
endsubgraph 调整软件参数C[调整操作系统或数据库的参数]D[调整Web服务器参数]
endsubgraph 优化软件架构和设计E[应用合适的软件设计模式和开发框架]F[优化软件架构]
endsubgraph 资源的合理利用G[减少访问磁盘次数]H[使用缓存技术对数据进行缓存]
endsubgraph 进行性能测试和优化I[负载测试和性能测试]J[评估不同参数组合或优化技术]
endsubgraph 系统监控和调试K[实时监控系统性能和资源利用率]L[收集日志信息]
endA -->|属于| 增加硬件资源
B -->|属于| 增加硬件资源
C -->|属于| 调整软件参数
D -->|属于| 调整软件参数
E -->|属于| 优化软件架构和设计
F -->|属于| 优化软件架构和设计
G -->|属于| 资源的合理利用
H -->|属于| 资源的合理利用
I -->|属于| 进行性能测试和优化
J -->|属于| 进行性能测试和优化
K -->|属于| 系统监控和调试
L -->|属于| 系统监控和调试

除了以上措施,还可以根据不同的基础软件进行针对性的调优。例如,对于数据库系统,还可以使用分区、分片等技术,提高数据处理的并行性和可扩展性。对于Web服务器,还可以使用负载均衡技术,提高并发处理能力和可用性。总之,基础软件的性能调优需要多方面的考虑和综合处理。

鲲鹏性能优化工具 Tuning Kit

Tuning Kit 是一款针对鲲鹏计算平台的性能分析和优化工具,能收集处理器硬件、操作系统、进程/线程、函数等各层次的性能数据,分析出系统性能指标,定位到系统瓶颈点及热点函数。

Tuning Kit 支持以下功能特性:

  1. 系统配置全景分析:采集整个系统的软硬件配置信息,分析并针对不合理项提供优化建议。
  2. 系统性能全景分析:借鉴业界的 USE(utilization、saturation、errors)方法,通过采集系统 CPU、内存、存储 IO、网络 IO 等资源的运行情况,获得它们的使用率、饱和度、错误等指标,识别系统瓶颈。
  3. 针对部分系统指标项,根据已有的基准值和优化经验提供优化建议。
  4. 系统资源调度分析:基于 CPU 调度事件分析 CPU 核、进程/线程在各时间点的运行状态,进程/线程切换情况,给出相应的优化建议。

Tuning Kit 可以帮助用户更好地了解系统性能,识别和解决系统瓶颈,提高系统整体效率。

系统配置全景分析
系统资源调度分析
系统性能全景分析
针对部分系统指标项优化建议

相关文章:

DP读书:鲲鹏处理器 架构与编程(十四)ACPI与软件

一分钟速通ACPI和鲲鹏软件移植 操作系统内核鲲鹏软件移植鲲鹏软件移植流程 编译工具选择编译参数移植案例源码修改案例鲲鹏分析扫描工具 Dependency Advisor鲲鹏代码迁移工具 Porting Advisor 鲲鹏软件性能调优鲲鹏软件性能调优流程CPU与内存子系统性能调优网络子系统性能调优磁…...

C#,《小白学程序》第六课:队列(Queue)的应用,《实时叫号系统》

医院里面常见的叫号系统怎么实现的&#xff1f; 1 文本格式 /// <summary> /// 下面定义一个新的队列&#xff0c;用于演示《实时叫号系统》 /// </summary> Queue<Classmate> q2 new Queue<Classmate>(); /// <summary> /// 《小白学程序》第…...

mysql profiling profiles profile

要想优化一条 Query&#xff0c;我们就需要清楚的知道这条 Query 的性能瓶颈到底在哪里&#xff0c;是消耗的 CPU计算太多&#xff0c;还是需要的的 IO 操作太多&#xff1f;要想能够清楚的了解这些信息&#xff0c;在 MySQL 5.0 和 MySQL 5.1正式版中已经可以非常容易做到了&a…...

ChatGPT AIGC 一个指令总结Python所有知识点

在ChatGPT中,直接输入一个指令就可以生成Python的所有知识点大纲。 非常实用的ChatGPT功能。 AIGC ChatGPT ,BI商业智能, 可视化Tableau, PowerBI, FineReport, 数据库Mysql Oracle, Office, Python ,ETL Excel 2021 实操,函数,图表,大屏可视化 案例实战 http://t.…...

【kubernetes】k8s部署OpenELB及在KubeSphere使用OpenELB

OpenELB 官网 https://openelb.io 本文内容学习于马士兵云原生课程 概述 OpenELB is an open-source load balancer implementation designed for bare-metal Kubernetes clusters. OpenELB是一个为裸机Kubernetes集群设计的开源负载均衡器实现。 In cloud-based Kubernetes cl…...

Android Native Code开发学习(三)对java中的对象变量进行操作

Android Native Code开发学习&#xff08;三&#xff09; 本教程为native code学习笔记&#xff0c;希望能够帮到有需要的人 我的电脑系统为ubuntu 22.04&#xff0c;当然windows也是可以的&#xff0c;区别不大 对java中的对象变量进行操作 首先我们新建一个java的类 pub…...

如何用bat文件调用与它在同一文件夹下的某个exe程序

第一个方案&#xff1a; 如果bat文件与某个exe程序在同一文件夹下的。那直接写那个 程序文件名字就行了。 两种写法。比如是 test.exe程序 一种 test.exe 二种 start test.exe 第一种批处理会等待test.exe程序执行完后才会运行下面的语句 第二种不会等待 这个写绝对路径好用 另…...

设计模式--单例模式(Singleton Pattern)

一、什么是单例模式 单例模式是一种创建型设计模式&#xff0c;它旨在确保一个类只有一个实例&#xff0c;并提供一个全局访问点来访问该实例。换句话说&#xff0c;单例模式限制了类的实例化次数为一个&#xff0c;并提供一种在应用程序中共享一个实例的方式。这对于需要只有…...

postgis数据库从一张表中过滤出一部分数据到新表中

你可以使用以下步骤在PostGIS数据库中过滤objectid<100的数据&#xff0c;并将其创建为新表&#xff1a;打开PostGIS数据库的终端或客户端工具&#xff08;如Psql&#xff09;。 选择你要过滤数据的表。假设表名为"original_table"&#xff0c;该表包含一个名为&q…...

INDEMIND:“大+小”多机协同,实现机器人商用场景全覆盖

随着商用清洁机器人进入越来越多的场景中&#xff0c;单一的中型机器人并不能有效覆盖所有区域&#xff0c;更加细分化的产品组合正在成为新的趋势。 产品形态的“新趋势” 在商用场景中&#xff0c;目前的商用清洁机器人几乎均是中大型的产品形态&#xff0c;较大的体型意味…...

微信开发之一键创建标签的技术实现

简要描述&#xff1a; 添加标签 请求URL&#xff1a; http://域名地址/addContactLabel 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数名必选类型说明…...

八一参考文献:[八一新书]许少辉.乡村振兴战略下传统村落文化旅游设计[M]北京:中国建筑出版传媒,2022.

八一参考文献&#xff1a;&#xff3b;八一新书&#xff3d;许少辉&#xff0e;乡村振兴战略下传统村落文化旅游设计&#xff3b;&#xff2d;&#xff3d;北京&#xff1a;中国建筑出版传媒&#xff0c;&#xff12;&#xff10;&#xff12;&#xff12;&#xff0e;...

ChatGPT⼊门到精通(7):GPT3.5与 4.0区别

⼀、详细区别 1 项⽬ GPT3.5 GPT4.0 2 打字速度 较慢&#xff0c;⾼峰期更慢 更加慢&#xff0c;差别不⼤ 3 掉线⼏率 经常掉线 很少掉线 4 分段能⼒ ⽣成⼏百字后就停⽌了&#xff0c; 需要回复“继续”&#xff0c;有时候不 是很连贯 基本连贯 5 使⽤限制 1⼩时100次提问&am…...

Springboot整合MyBatisPlus框架操作MySQL

1、MyBatis-Plus概述 MyBatis-Plus (opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis (opens new window)的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 【技术储备】 拥有 Java 开发环境以及相应 IDE…...

基于Jenkins构建生产CICD环境(第二篇)

基于Jenkins自动打包并部署Tomcat环境 传统网站部署的流程 在运维过程中&#xff0c;网站部署是运维的工作之一。传统的网站部署的流程大致分为:需求分 析-->原型设计-->开发代码-->提交代码-->内网部署-->内网测试-->确认上线-->备份数据-->外网更新…...

ioctl、printk及多个此设备支持

一、ioctl操作实现 ioctl&#xff08;Input/Output Control&#xff09;是一个在 Unix-like 操作系统中的系统调用&#xff0c;用于控制设备或文件的各种操作。它允许用户空间程序与内核空间进行交互&#xff0c;执行一些特定的设备控制、状态查询或其他操作&#xff0c;而不必…...

电脑每次开机杀毒软件报iusb3mon.exe病毒已清除,电脑中病毒iusbmon杀毒办法,工具杀毒

不知道什么时候开始&#xff0c;我电脑C盘的系统数据存储文件夹programdata 不知不觉就没了&#xff0c;找不到了 programdata文件夹为存储系统数据文件的&#xff0c;这个文件不见了&#xff0c;而且我打开了显示隐藏文件和文件夹还是没有显示 然后我重启电脑&#xff0c;杀毒…...

centos服务器系统下安装python3并与自带的python2

centos服务器系统下安装python3并与自带的python2 在centos中&#xff0c;自带有python2&#xff0c;因此需要经常安装python3。但是这里有一个坑&#xff0c;就是centos的yum是用python2写的&#xff0c;如果正常编译安装python3&#xff0c;那么yum就会直接挂了。为了方便以…...

(二十)大数据实战——Flume数据采集的基本案例实战

前言 本节内容我们主要介绍几个Flume数据采集的基本案例&#xff0c;包括监控端口数据、实时监控单个追加文件、实时监控目录下多个新文件、实时监控目录下的多个追加文件等案例。完成flume数据监控的基本使用。 正文 监控端口数据 ①需求说明 - 使用 Flume 监听一个端口&am…...

AutoCAD图如何保存为Word

AutoCAD图如何保存为Word 引言AutoCAD图保存为Word文件步骤&#xff1a; 引言 不知道大家有没有是否遇到需要将AutoCAD图保存到Word中。有些小伙伴可能直接截图插入Word中&#xff0c;这种方法简单&#xff0c;但对于有高清图片需求的小伙伴就不适用了。接下来我就为大家介绍一…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...