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

接口性能测试复盘:解决JMeter超时问题的实践

在优化接口并重新投入市场后,我们面临着一项关键任务:确保其在高压环境下稳定运行。于是,我们启动了一轮针对该接口的性能压力测试,利用JMeter工具模拟高负载场景。然而,在测试进行约一分钟之后,频繁出现了“连接超时”的错误信息,即“Failed: Connection timed out”。这不仅阻碍了我们构建一个持续稳定的压力测试环境,还对准确评估系统承载能力带来了挑战。
在这里插入图片描述

问题排查与解决方案概览:

nginx问题排查

端口耗尽问题是一种常见的网络资源瓶颈,特别是在高并发的测试或生产环境中。当一个服务器在短时间内需要处理大量的网络连接时,如果可用端口数量不足,就会导致新的连接请求无法得到及时响应,从而引发服务延迟或失败。

  1. 端口耗尽问题的初步分析

    • 在这个问题中,初步分析指出错误源于JMeter客户端无法及时与服务器建立TCP连接。JMeter是一款常用的性能测试工具,它通过模拟多个用户同时访问服务器来测试系统的性能。
    • 监控工具的检测显示,部署了nginx的服务器端口占用量达到了6万个,接近了TCP/IP协议定义的端口上限(65535个)。这表明服务器正在处理大量的网络连接,端口资源变得非常紧张。
  2. 解决端口耗尽问题的措施

    • 减少并发线程数:通过降低JMeter发起的并发连接数,可以减少同时向服务器发起的连接请求,从而减轻对端口资源的压力。
    • 调整nginx配置:将nginx配置调整到8核16GB的资源,可以增加服务器处理连接的能力。这可能包括增加工作进程数、优化内存和CPU使用等。
    • 成功缓解端口资源紧张的问题:通过上述措施,服务器的端口资源得到了更有效的管理,减少了端口耗尽的风险。
  3. 监控端口使用状况

    • 使用命令查看端口使用状况:netstat -nat|grep -i 8080|wc -l 命令可以帮助我们查看特定端口(如8080)的使用情况。这个命令会列出所有与8080端口相关的网络连接状态,并通过wc -l计算连接数。
    • 如果发现连接数在6万左右,那么很可能是端口号已经用尽。这种情况下,需要采取措施减少并发连接数或者增加服务器的处理能力,以防止端口耗尽导致的服务不可用。

网络排查

  1. 网络与资源监控优化是一个持续的过程,需要对系统的各个方面进行细致的观察和调整。在本例中,我们对业务服务器状态进行了深入调查,发现了一些关键的问题和解决方案。

  2. 问题诊断

    • 初步调查发现,网络流量的激增与数据库查询活动有关。特别是,健康检查接口的设计导致了频繁的数据库加载,这个接口为了监测是否有遗漏的订单,不断地加载所有活跃订单。这种设计在高并发的环境下会导致大量的数据库查询操作,从而引起网络流量的显著增加。
    • 由于健康检查接口的操作,CPU和内存的使用率急剧上升,给服务器带来了巨大的压力。这种资源的过度使用不仅影响了服务的稳定性,还可能导致性能下降和其他服务的故障。
  3. 解决措施

    • 关闭健康检查接口中的监控功能:通过关闭或者优化这部分功能,减少了不必要的数据库查询,从而降低了网络流量和系统负载。
    • 尽管采取了上述措施,测试的稳定性有所改善,但是系统中仍然存在超时现象。这表明可能需要进一步的优化措施,比如优化数据库索引、调整查询算法或者增加更多的服务器资源。
  4. 性能监控工具的应用

    • 网络分析:使用iftop -i eth1 -P命令可以实时监控指定网络接口(如eth1)的流量情况,帮助快速识别流量异常的根源。
    • CPU分析:使用top命令可以实时显示系统中各个进程的CPU使用情况,帮助我们找出消耗CPU资源最多的进程。
    • JVM内存分析:使用jstat -gc [pid] 时间间隔单位毫秒 次数,例如jstat -gc 189 1000 10,可以监控指定Java进程(如pid=189)的垃圾收集情况,帮助我们了解内存的使用和垃圾收集的频率。

GC排查

内存管理与GC(垃圾收集)优化是确保Java应用性能和稳定性的关键因素。在本例中,我们使用了Arthas工具来追踪和诊断性能问题,并采取了有效的优化措施。

  1. 问题诊断

    • 使用Arthas工具追踪发现,发送订单到Cep服务的过程耗时较长。Arthas是一个Java诊断工具,能够帮助开发者即时查看和诊断运行中的Java程序,无需重启或修改代码。
    • 问题的原因在于Cep服务虽然配置了5GB内存,但实际可用内存仅为2GB。这种差异可能是由于JVM内存分配不当或者系统其他部分占用了过多内存导致的。
    • 由于可用内存较低,导致在处理大量订单时频繁触发Full GC(全面垃圾收集)。Full GC会暂停所有应用线程,直至垃圾收集完成,这会严重影响应用的响应时间和吞吐量。
  2. 解决措施

    • 我们通过限制存活订单数不超过20万来避免内存溢出。这个限制减少了同时在内存中处理的订单数量,从而降低了内存的使用量。
    • 清理部分订单后,测试恢复正常。这意味着通过释放不再需要的对象所占用的内存,我们能够减少GC的频率和持续时间,提高应用的性能。
  3. 内存管理和GC优化的一般原则

    • 合理配置JVM内存:根据应用的需求和服务器的资源情况,合理设置堆内存(-Xmx)和非堆内存(-XX:MaxMetaspaceSize等)的大小,避免内存不足或过度分配。
    • 代码优化:优化代码以减少不必要的对象创建和长时间持有大对象,可以使用对象池或软引用等技术来管理对象生命周期。
    • GC策略调整:选择合适的垃圾收集器(如CMS、G1等),并根据应用的特点调整GC参数,比如增大年轻代比例、调整晋升阈值等。
    • 性能监控:使用各种性能监控工具(如Arthas、JVisualVM、PerfMa等)实时监控系统的内存和GC状态,及时发现并解决问题。

连接管理策略

连接管理策略是确保应用能够在高并发环境下稳定运行的关键因素之一。在本例中,我们通过分析JMeter的默认行为和调整配置,解决了连接管理的问题。

  1. 问题诊断

    • 使用JMeter进行性能测试时,我们发现默认情况下JMeter使用的是短连接模式。这意味着每次请求完成后,TCP连接会被立即关闭,而不是被重新用于后续的请求。
    • 由于未启用KeepAlive选项,端口在释放后不会被立即回收。在TCP协议中,KeepAlive是一种检测和控制空闲连接的机制,它能够确保连接在关闭后快速释放占用的资源。
    • 这种端口未立即回收的情况影响了后续连接的建立,因为在TCP/IP网络中,一个端口在一段时间内只能被一个连接使用。如果端口未能及时释放,新的连接请求就会被阻塞,导致性能下降或超时错误。
  2. 解决措施

    • 我们通过修改JMeter的配置,开启了KeepAlive选项。这个选项使得TCP连接在关闭后能够更快地被系统回收,从而减少了端口资源的消耗。
    • 开启KeepAlive后,端口的使用效率得到了显著提升,后续连接建立的延迟和失败率都大幅降低。这不仅提高了性能测试的效率,也使得测试结果更加准确和可靠。
  3. 连接管理策略的一般原则

    • 长连接与短连接的选择:根据应用的实际需求选择适合的连接模式。长连接可以减少连接建立和关闭的开销,但需要更复杂的连接管理机制来处理异常和空闲状态。
    • KeepAlive的配置:在可能的情况下启用KeepAlive,以便及时检测和释放不再需要的连接。但需要注意,KeepAlive不适合所有场景,比如移动网络环境下可能会增加电池消耗。
    • 资源调优与监控:合理配置线程池、数据库连接池等资源池的大小,监控资源使用情况,及时调整参数以适应不同的负载情况。
    • 适应性与容错性:设计适应性强和容错性高的系统,能够处理网络波动、服务不可用等异常情况,保证系统的稳定运行。

总结与启示:

  • 性能优化是个系统工程,需综合考虑网络、硬件资源、软件配置及测试工具设置。
  • 细致监控与诊断是关键,借助专业工具(如arthas、iftop)定位瓶颈。
  • 资源管理至关重要,合理分配内存和线程数,避免资源过度消耗。
  • 连接策略调整,如启用KeepAlive,能有效提升连接效率和测试稳定性。

通过这一系列排查与优化措施,我们不仅解决了JMeter测试中的超时问题,还提升了系统的整体性能和稳定性,为网格交易功能的高效运行打下了坚实的基础。分享此经验,希望能为遇到类似问题的开发者提供参考与帮助。

相关文章:

接口性能测试复盘:解决JMeter超时问题的实践

在优化接口并重新投入市场后,我们面临着一项关键任务:确保其在高压环境下稳定运行。于是,我们启动了一轮针对该接口的性能压力测试,利用JMeter工具模拟高负载场景。然而,在测试进行约一分钟之后,频繁出现了…...

[数据集][目标检测]猕猴桃检测数据集VOC+YOLO格式1838张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1838 标注数量(xml文件个数):1838 标注数量(txt文件个数):1838 标注…...

摸鱼大数据——Hive函数7-9

7、日期时间函数 Hive函数链接:LanguageManual UDF - Apache Hive - Apache Software Foundation SimpleDateFormat (Java Platform SE 8 ) current_timestamp: 获取时间原点到现在的秒/毫秒,底层自动转换方便查看的日期格式 常用 to_date: 字符串格式时间…...

python连接数据库

python连接MYSQL、postgres、oracle等的基本操作 python连接mysql MySQLdb MySQLdb又叫MySQL-python ,是 Python 连接 MySQL 的一个驱动,很多框架都也是基于此库进行开发,只支持 Python2.x,而且安装的时候有很多前置条件&#…...

能不能接受这些坑?买电车前一定要看

图片来源:汽车之家 文 | Auto芯球 作者 | 雷慢 刚有个朋友告诉我,买了电车后感觉被骗了, 很多“坑”都是他买车后才知道的。 不提前研究,不做功课,放着我这个老司机不请教, 这个大冤种他不当谁当&…...

k8s中pod如何排错?

排除Kubernetes Pod故障通常涉及一系列步骤,以诊断问题并找到解决方案。以下是一些常见的故障排除方法: 检查Pod状态: 使用kubectl get pods查看Pod的状态。如果Pod没有处于Running状态,查看更详细的信息,使用kubectl describe …...

【手撕面试题】Vue(高频知识点二)

每天10道题,100天后,搞定所有前端面试的高频知识点,加油!!!,在看文章的同时,希望不要直接看答案,先思考一下自己会不会,如果会,自己的答案是什么&…...

四、.Net8对接Ollama实现文字翻译(.Net8+SemanticKernel+Ollama)本地运行自己的大模型

.Net8SemanticKernelOllama 一、Semantic Kernel官方定义SK能做什么? 二、基本使用1、普通对话2、使用插件实现文本翻译功能 三、IChatCompletionService、ITextGenerationService、ITextEmbeddingGenerationService 很多情况都有这样的需求,使用自有系统…...

初始C++

感谢大佬的光临各位,希望和大家一起进步,望得到你的三连,互三支持,一起进步 个人主页:LaNzikinh-CSDN博客 文章目录 前言一.引用二.内联函数三.类和对象总结 前言 之前讲c的命令空间和第一个程序的运行,继…...

Chapter 5 Current Mirrors and Biasing Techniques

Chapter 5 Current Mirrors and Biasing Techniques 这一章介绍电流镜 5.1 Basic Current Mirrors MOS工作在饱和区, 表现为一个电流源. 考虑电源变化, PVT波动, 我们会首先产生一路精准电流源, 再复制这路电流. 如何复制呢? 电流转电压再转电流就行了, 如下图所示 考虑到…...

Avalonia Image控件上通过鼠标拖动画出矩形框

注册鼠标事件&#xff1a;首先&#xff0c;你需要注册 Image 控件上的鼠标事件&#xff0c;包括 PointerPressed、PointerMoved 和 PointerReleased。你可以在 XAML 文件或代码中注册这些事件。 <Image PointerPressed"Image_PointerPressed" PointerMoved"…...

Wireshark Lua插件入门

摘要 开发中经常通过抓包分析协议&#xff0c;对于常见的协议如 DNS wireshark 支持自动解析&#xff0c;便于人类的理解&#xff0c;对于一些私有协议&#xff0c;wireshark 提供了插件的方式自定义解析逻辑。 1 动手 废话少说&#xff0c;直接上手。 第一步当然是装上wiresh…...

XXE漏洞简介

目录 漏洞原理 漏洞危害 前置知识 XML简介 DTD简介 DTD的两种声明方式 实体 实体分类 内置实体(Built-inentities) 字符实体&#xff08;Characterentities&#xff09; 通用实体&#xff08;Generalentities&#xff09; 参数实体(Parameterentities) XXE漏洞…...

小白跟做江科大32单片机之蜂鸣器

1.复制之前编写的工程库项目&#xff0c;详细工程库创建过程如下链接&#xff1a; 小白跟做江科大32单片机之LED闪烁-CSDN博客https://blog.csdn.net/weixin_58051657/article/details/139295351?spm1001.2014.3001.55022.按照江科大老师给的图片进行连接蜂鸣器 接线时要用公…...

IsoBench:多模态基础模型性能的基准测试与优化

随着多模态基础模型的快速发展&#xff0c;如何准确评估这些模型在不同输入模态下的性能成为了一个重要课题。本文提出了IsoBench&#xff0c;一个基准数据集&#xff0c;旨在通过提供多种同构&#xff08;isomorphic&#xff09;表示形式的问题&#xff0c;来测试和评估多模态…...

MyEclipse使用教程

MyEclipse使用教程如下&#xff0c;按照以下步骤&#xff0c;您可以逐步熟悉并掌握MyEclipse的基本使用&#xff1a; 一、MyEclipse安装与准备 软件准备&#xff1a; 在使用MyEclipse之前&#xff0c;您需要确保已经安装了JDK&#xff08;Java Development Kit&#xff09;。J…...

TiDB学习9:Ti Cloud简介

目录 1. 为什么选择TiDB 2. 多租户 3. TiDB架构 4. 什么是TiDB Cloud 5. TiDB Cloud Provider Region 6. TiDB Cloud 入门 6.1 在浏览器中打开TiDB Cloud 6.2 创建您的账户 6.3 Developer Tier 与Dedicated Tier 6.3.1 Developer Tier 6.3.2 Dedicated Tier 6.3.2.…...

JavaScript 创建新节点的方法

在 JavaScript 中&#xff0c;可以使用 document.createElement() 方法来创建新的节点。该方法接受一个字符串参数&#xff0c;表示要创建的节点类型&#xff0c;如 "div"、"p" 等。 创建一个新节点的基本步骤如下&#xff1a; 使用 document.createElem…...

在phpstorm2024版里如何使用Jetbrains ai assistant 插件 ?

ai assistant激活成功后&#xff0c;如图 ai assistant渠道&#xff1a;https://web.52shizhan.cn/activity/ai-assistant 在去年五月份的 Google I/O 2023 上&#xff0c;Google 为 Android Studio 推出了 Studio Bot 功能&#xff0c;使用了谷歌编码基础模型 Codey,Codey 是…...

进程间通信(27000字超详解)

&#x1f30e;进程间通信 文章目录&#xff1a; 进程间通信 进程间通信简介       进程间通信目的       初识进程间通信       进程间通信的分类 匿名管道通信       认识管道       匿名管道       匿名管道测试       管道的四种…...

一、大模型推理

https://github.com/hiyouga/LLaMA-Factory/blob/main/README_zh.md https://github.com/hiyouga/LLaMA-Factory/blob/main/examples/README_zh.md 安装 v7.1 https://github.com/hiyouga/LLaMA-Factory/releases/tag/v0.7.1 git clone --depth 1 https://github.com/hiyoug…...

.NET IoC 容器(三)Autofac

目录 .NET IoC 容器&#xff08;三&#xff09;AutofacAutofacNuget 安装实现DI定义接口定义实现类依赖注入 注入方式构造函数注入 | 属性注入 | 方法注入注入实现 接口注册重复注册指定参数注册 生命周期默认生命周期单例生命周期每个周期范围一个生命周期 依赖配置Nuget配置文…...

Day44 动态规划part04

背包问题 01背包问题&#xff1a;每件物品只能用一次完全背包问题&#xff1a;每件物品可以使用无数次 01背包问题 暴力解法&#xff1a;每一件物品其实只有两个状态&#xff0c;取或者不取&#xff0c;所以可以使用回溯法搜索出所有的情况&#xff0c;那么时间复杂度就是 o…...

html期末复习速览

一.基础标签 1.段落标签<p></p> 特点&#xff1a;分段分割 2.标题标签<h1></h1>……<h6></h6> 特点&#xff1a;文字加粗&#xff0c;单独占一行 3.换行标签<br /> 特点&#xff1a;单标签&#xff0c;强制换行 二.文本格式化…...

CTFHUB-信息泄露-目录遍历和PHPINFO

目录 目录遍历 PHPINFO 目录遍历 很简单&#xff0c;挨着把每个目录都点开看一下 发现2目录下有个 flag.txt 文件&#xff0c;点开发现了本关的flag PHPINFO 这关也很简单&#xff0c;进来之后是一个phpinfo页面&#xff0c;按 CTRL F键打开查询&#xff0c;输入flag&#…...

面向Java程序员的Go工程开发入门流程

对于一个像我这样没有go背景的java程序员来说&#xff0c;使用go开发一个可用的程序的速度是肉眼可见的缓慢。 其难点不在于go语言本身&#xff0c;而是搭建整个工程链路的过程&#xff0c;即所谓的“配环境”。 本文主要讲述如何配出一个适合go开发的环境&#xff0c;以免有同…...

vue3开发高德地图

在vue3的index.html 使用动态注入地址名和key <html lang"en"><head><meta charset"UTF-8" /><link rel"icon" type"image/svgxml" href"/vite.svg" /><meta name"viewport" conten…...

通过DLL方式链接glfw3.dll

主要是CMakeLists.txt文件变化 cmake_minimum_required(VERSION 3.10) project(glfwTest) set(CMAKE_CXX_STANDARD 11) aux_source_directory(. SRC_SOURCES) set(GLFW_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/include) set(GLFW_LIBRARY_DIR ${CMAKE_SOURCE_DIR}/lib/glfw) add_ex…...

Python自然语言处理(NLP)库之NLTK使用详解

概要 自然语言处理(NLP)是人工智能和计算机科学中的一个重要领域,涉及对人类语言的计算机理解和处理。Python的自然语言工具包(NLTK,Natural Language Toolkit)是一个功能强大的NLP库,提供了丰富的工具和数据集,帮助开发者进行各种NLP任务,如分词、词性标注、命名实体…...

sqoop操作

介绍 sqoop是隶属于Apache旗下的, 最早是属于cloudera公司的,是一个用户进行数据的导入导出的工具, 主要是将关系型的数据库(MySQL, oracle...)导入到hadoop生态圈(HDFS,HIVE,Hbase...) , 以及将hadoop生态圈数据导出到关系型数据库中 操作 将数据从mysql中导入到HDFS中 1.全量…...

【Qt秘籍】[002]-开始你的Qt之旅-下载

一、Qt的开发工具有哪些&#xff1f; Qt的开发工具概述Qt支持多种开发工具&#xff0c;其中最常见的开发工具是 1.QtCreator 【易上手/有少量bug/适合新手】 2.VisualStudio 【功能强大/易出错/需要更多额外配置】 3.Eclipse 【清朝老兵IDE/不建议使用】 【注意&#xff1…...

【自动驾驶】点与向量从ego系转odometry系

1.点从ego系转odometry系(ego -> odometry) struct Point {float x;float y;float angle; }; Point trans; // is the odom to ego transform Point odom_coord; is the odom coord Point ego_coord; is the ego coordfloat odom_coord.x = (ego_coord.x - trans.x) * st…...

jsmug:一个针对JSON Smuggling技术的测试PoC环境

关于jsmug jsmug是一个代码简单但功能强大的JSON Smuggling技术环境PoC&#xff0c;该工具可以帮助广大研究人员深入学习和理解JSON Smuggling技术&#xff0c;并辅助提升Web应用程序的安全性。 背景内容 JSON Smuggling技术可以利用目标JSON文档中一些“不重要”的字节数据实…...

Qt 控件提升

什么是控件提升&#xff08;Widget Promotion&#xff09; 控件提升是一个在Qt编程中常见但容易被忽视的概念。简单来说&#xff0c;控件提升就是将一个基础控件&#xff08;Base Widget&#xff09;转换为一个更特定、更复杂的自定义控件&#xff08;Custom Widget&#xff09…...

封装一个websocket,支持断网重连、心跳检测,拿来开箱即用

封装一个websocket&#xff0c;支持断网重连、心跳检测 代码封装 编写 WebSocketClient.js import { EventDispatcher } from ./dispatcherexport class WebSocketClient extends EventDispatcher {constructor(url) {console.log(url, urlurl)super()this.url url}// #soc…...

推荐一款开源电子签章/电子合同系统

文章目录 前言一、项目介绍二、项目地址三、技术架构四、代码结构介绍五、功能模块六、功能界面首页面手写签名面板电子印章制作数字证书生成 总结 前言 大家好&#xff01;我是智航云科技&#xff0c;今天为大家分享一个免费开源的电子签字系统。 一、项目介绍 开放签电子签…...

Qt Creator(Qt 6.6)拷贝一行

Edit - Preference - Environment&#xff1a; 可看到&#xff0c;拷贝一行的快捷键是&#xff1a; ctrl Ins...

红队内网攻防渗透:内网渗透之数据库权限提升技术

红队内网攻防渗透 1. 内网权限提升技术1.1 数据库权限提升技术1.1.1 数据库提权流程1.1.1.1 先获取到数据库用户密码1.1.1.2 利用数据库提权工具进行连接1.1.1.3 利用建立代理解决不支持外联1.1.1.4 利用数据库提权的条件及技术1.1.2 Web到Win-数据库提权-MSSQL1.1.3 Web到Win-…...

从0开始制作微信小程序

目录 前言 正文 需要事先准备的 需要事先掌握的 什么是uniapp 平台应用的分类方式 什么是TypeScript 创建项目 项目文件作用 源码地址 尾声 &#x1f52d; Hi,I’m Pleasure1234&#x1f331; I’m currently learning Vue.js,SpringBoot,Computer Security and so on.&#x1…...

Linux学习笔记:日志文件的编写

日志文件Log.hpp 日志文件的作用简单的日志文件编写 日志文件的作用 日志文件可以很好的帮我们显示出程序运行的信息,例如,进程pid,运行时间,运行状况等,通过日志记录程序的执行路径、变量值、函数调用等&#xff0c;可以帮助我们快速定位和修复代码中的错误。 简单的日志文件…...

为什么要保持方差为1

1.数值稳定性&#xff1a; 在机器学习和深度学习中&#xff0c;维持激活函数输入的方差在一个合理范围内&#xff08;如1&#xff09;是很重要的&#xff0c;这有助于防止在训练过程中发生梯度消失或梯度爆炸的问题。如果方差过大或过小&#xff0c;经过多层网络后输出结果的方…...

Wpf 使用 Prism 实战开发Day31

登录数据绑定 1.首先在LoginViewModel 登录逻辑处理类中&#xff0c;创建登录要绑定属性和命令 public class LoginViewModel : BindableBase, IDialogAware {public LoginViewModel(){ExecuteCommand new DelegateCommand<string>(Execure);}public string Title { ge…...

Linux权限提升二

#应用场景&#xff1a; 获取到Web权限或普通用户在Linux服务器上时进行的SUID&SUDO提权 SUID (Set owner User ID up on execution)是给予文件的一个特殊类型的文件权限。在Linux/Unix中&#xff0c;当一个程序运行的时候&#xff0c;程序将从登录用户处继承权限。SUID被定…...

[AI OpenAI] 推出ChatGPT Edu

一种负担得起的解决方案&#xff0c;帮助大学将AI负责任地引入校园。 我们宣布推出ChatGPT Edu&#xff0c;这是一个专为大学设计的ChatGPT版本&#xff0c;旨在负责任地向学生、教职员工、研究人员和校园运营部署AI。ChatGPT Edu由GPT-4o提供支持&#xff0c;能够跨文本和视觉…...

HTML5+CSS3回顾总结

一、HTML5新特性 1.语义化标签 <header> 头部标签<nav> 导航标签<article> 内容标签<section> 定义文档某个区域<aside> 侧边栏标签<footer> 尾部标签 2.多媒体标签 2.1视频标签vedio 》常规写法&#xff08;尽量都使用mp4&#xff0…...

AI推介-多模态视觉语言模型VLMs论文速览(arXiv方向):2024.05.01-2024.05.10

文章目录~ 1.Pseudo-Prompt Generating in Pre-trained Vision-Language Models for Multi-Label Medical Image Classification2.VLSM-Adapter: Finetuning Vision-Language Segmentation Efficiently with Lightweight Blocks3.Memory-Space Visual Prompting for Efficient …...

Python 点云生成高程模型图(DSM)

点云生成高程模型图 一、什么是DSM?二、python代码三、结果可视化一、什么是DSM? DSM(Digital Surface Model)是一种数字高程模型,通常用于描述地表地形的数字化表示。它是由一系列离散的高程数据点组成的三维地形模型,其中每个点都具有其相应的高程值。   DSM主要用于…...

[第五空间 2021]WebFTP

题目是WebFTP 通过标签可以看出git泄露(git泄露是指开发人员利用git进行版本控制) 通过网上了解WebFTP的源码账号admin 密码admin888 进去之后正常思路是我们利用/.git 在githack里面进行复现 查看log看看有没有flag 但是经过我们查询之后不是这样子 通过一段时间摸索在phpinf…...

SQL—DQL(数据查询语言)之小结

一、引言 在前面我们已经学习完了所有的关于DQL&#xff08;数据查询语言&#xff09;的基础语法块部分&#xff0c;现在对DQL语句所涉及的语法&#xff0c;以及需要注意的事项做一个简单的总结。 二、DQL语句 1、基础查询 注意&#xff1a; 基础查询的语法是&#xff1a;SELE…...

找回xmind文件办法:一切意外均可找回(误删/重启关机等)

我周三编辑完&#xff0c;周四下午评审完用例忘记保存 结果到了快乐星期五&#xff0c;由于是周五我太开心了...早上到公司后觉得电脑卡&#xff0c;直接点了重启啥都没保存啊啊啊啊啊 准备上传测试用例时才想起来我的用例找不见了&#xff01;&#xff01;&#xff01;&…...