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

【C#】获取电脑CPU、内存、屏幕、磁盘等信息

通过WMI类来获取电脑各种信息,参考文章:WMI_04_常见的WMI类的属性_wmi scsilogicalunit_fantongl的博客-CSDN博客

自己整理了获取电脑CPU、内存、屏幕、磁盘等信息的代码

 #region 系统信息/// <summary>/// 电脑信息/// </summary>public partial class ComputerInfo{/// <summary>/// 系统版本/// <para>示例:Windows 10 Enterprise</para>/// </summary>public static string OSProductName { get; } = (string)Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", "ProductName", 0);/// <summary>/// 操作系统版本/// <para>示例:Microsoft Windows 10.0.18363</para>/// </summary>public static string OSDescription { get; } = System.Runtime.InteropServices.RuntimeInformation.OSDescription;/// <summary>/// 操作系统架构(<see cref="Architecture">)/// <para>示例:X64</para>/// </summary>public static string OSArchitecture { get; } = System.Runtime.InteropServices.RuntimeInformation.OSArchitecture.ToString();/// <summary>/// 获取系统信息/// </summary>/// <returns></returns>public static SystemInfo GetSystemInfo(){SystemInfo systemInfo = new SystemInfo();var osProductName = OSProductName.Trim().Replace(" ", "_");var osVersionNames = Enum.GetNames(typeof(OSVersion)).ToList();for (int i = 0; i < osVersionNames.Count; i++){var osVersionName = osVersionNames[i];if (osProductName.Contains(osVersionName)){systemInfo.OSVersion = (OSVersion)Enum.Parse(typeof(OSVersion), osVersionName);systemInfo.WindowsVersion = osProductName.Replace(osVersionName, "").Replace("_", " ");}}systemInfo.WindowsVersionNo = OSDescription;systemInfo.Architecture = OSArchitecture;return systemInfo;}}/// <summary>/// 系统信息/// </summary>public class SystemInfo{/// <summary>/// 系统版本。如:Windows 10/// </summary>public string WindowsVersion { get; set; }/// <summary>/// 系统版本。如:专业版/// </summary>public OSVersion OSVersion { get; set; }/// <summary>/// Windows版本号。如:Microsoft Windows 10.0.18363/// </summary>public string WindowsVersionNo { get; set; }/// <summary>/// 操作系统架构。如:X64/// </summary>public string Architecture { get; set; }}/// <summary>/// 系统客户版本/// </summary>public enum OSVersion{/// <summary>/// 家庭版/// </summary>Home,/// <summary>/// 专业版,以家庭版为基础/// </summary>Pro,Professional,/// <summary>/// 企业版,以专业版为基础/// </summary>Enterprise,/// <summary>/// 教育版,以企业版为基础/// </summary>Education,/// <summary>/// 移动版/// </summary>Mobile,/// <summary>/// 企业移动版,以移动版为基础/// </summary>Mobile_Enterprise,/// <summary>/// 物联网版/// </summary>IoT_Core,/// <summary>/// 专业工作站版,以专业版为基础/// </summary>Pro_for_Workstations}#endregion#region CPU信息public partial class ComputerInfo{/// <summary>/// CPU信息/// </summary>/// <returns></returns>public static CPUInfo GetCPUInfo(){var cpuInfo = new CPUInfo();var cpuInfoType = cpuInfo.GetType();var cpuInfoFields = cpuInfoType.GetProperties().ToList();var moc = new ManagementClass("Win32_Processor").GetInstances();foreach (var mo in moc){foreach (var item in mo.Properties){if (cpuInfoFields.Exists(f => f.Name == item.Name)){var p = cpuInfoType.GetProperty(item.Name);p.SetValue(cpuInfo, item.Value);}}}return cpuInfo;}}/// <summary>/// CPU信息/// </summary>public class CPUInfo{/// <summary>/// 操作系统类型,32或64/// </summary>public uint AddressWidth { get; set; }/// <summary>/// 处理器的名称。如:Intel(R) Core(TM) i3-8100 CPU @ 3.60GHz/// </summary>public string Name { get; set; }/// <summary>/// 处理器的当前实例的数目。如:4。4核/// </summary>public uint NumberOfEnabledCore { get; set; }/// <summary>/// 用于处理器的当前实例逻辑处理器的数量。如:4。4线程/// </summary>public uint NumberOfLogicalProcessors { get; set; }/// <summary>/// 系统的名称。计算机名称。如:GREAMBWANG/// </summary>public string SystemName { get; set; }}#endregion#region 内存信息public partial class ComputerInfo{/// <summary>/// 内存信息/// </summary>/// <returns></returns>public static RAMInfo GetRAMInfo(){var ramInfo = new RAMInfo();var totalPhysicalMemory = TotalPhysicalMemory;var memoryAvailable = MemoryAvailable;var conversionValue = 1024.0 * 1024.0 * 1024.0;ramInfo.TotalPhysicalMemoryGBytes = Math.Round((double)(totalPhysicalMemory / conversionValue), 1);ramInfo.MemoryAvailableGBytes = Math.Round((double)(memoryAvailable / conversionValue), 1);ramInfo.UsedMemoryGBytes = Math.Round((double)((totalPhysicalMemory - memoryAvailable) / conversionValue), 1);ramInfo.UsedMemoryRatio = (int)(((totalPhysicalMemory - memoryAvailable) * 100.0) / totalPhysicalMemory);return ramInfo;}/// <summary>/// 总物理内存(B)/// </summary>/// <returns></returns>public static long TotalPhysicalMemory{get{long totalPhysicalMemory = 0;ManagementClass mc = new ManagementClass("Win32_ComputerSystem");ManagementObjectCollection moc = mc.GetInstances();foreach (ManagementObject mo in moc){if (mo["TotalPhysicalMemory"] != null){totalPhysicalMemory = long.Parse(mo["TotalPhysicalMemory"].ToString());}}return totalPhysicalMemory;}}/// <summary>/// 获取可用内存(B)/// </summary>public static long MemoryAvailable{get{long availablebytes = 0;ManagementClass mos = new ManagementClass("Win32_OperatingSystem");foreach (ManagementObject mo in mos.GetInstances()){if (mo["FreePhysicalMemory"] != null){availablebytes = 1024 * long.Parse(mo["FreePhysicalMemory"].ToString());}}return availablebytes;}}}/// <summary>/// 内存信息/// </summary>public class RAMInfo{/// <summary>/// 总物理内存(GB)/// </summary>public double TotalPhysicalMemoryGBytes { get; set; }/// <summary>/// 获取可用内存(GB)/// </summary>public double MemoryAvailableGBytes { get; set; }/// <summary>/// 获取已用内存(GB)/// </summary>public double UsedMemoryGBytes { get; set; }/// <summary>/// 内存使用率/// </summary>public int UsedMemoryRatio { get; set; }}#endregion#region 屏幕信息public partial class ComputerInfo{/// <summary>/// 屏幕信息/// </summary>public static GPUInfo GetGPUInfo(){GPUInfo gPUInfo = new GPUInfo();gPUInfo.CurrentResolution = MonitorHelper.GetResolution();gPUInfo.MaxScreenResolution = GetGPUInfo2();return gPUInfo;}/// <summary>/// 获取最大分辨率/// </summary>/// <returns></returns>private static Size GetMaximumScreenSizePrimary(){var scope = new System.Management.ManagementScope();var q = new System.Management.ObjectQuery("SELECT * FROM CIM_VideoControllerResolution");UInt32 maxHResolution = 0;UInt32 maxVResolution = 0;using (var searcher = new System.Management.ManagementObjectSearcher(scope, q)){var results = searcher.Get();foreach (var item in results){if ((UInt32)item["HorizontalResolution"] > maxHResolution)maxHResolution = (UInt32)item["HorizontalResolution"];if ((UInt32)item["VerticalResolution"] > maxVResolution)maxVResolution = (UInt32)item["VerticalResolution"];}}return new Size((int)maxHResolution, (int)maxVResolution);}/// <summary>/// 获取最大分辨率2/// CurrentHorizontalResolution:1920/// CurrentVerticalResolution:1080/// </summary>/// <returns></returns>public static Size GetGPUInfo2(){var gpu = new StringBuilder();var moc = new ManagementObjectSearcher("select * from Win32_VideoController").Get();var currentHorizontalResolution = 0;var currentVerticalResolution = 0;foreach (var mo in moc){foreach (var item in mo.Properties){if (item.Name == "CurrentHorizontalResolution" && item.Value != null)currentHorizontalResolution = int.Parse((item.Value.ToString()));if (item.Name == "CurrentVerticalResolution" && item.Value != null)currentVerticalResolution = int.Parse((item.Value.ToString()));//gpu.Append($"{item.Name}:{item.Value}\r\n");}}//var res = gpu.ToString();//return res;return new Size(currentHorizontalResolution, currentVerticalResolution);}}public class MonitorHelper{/// <summary>/// 获取DC句柄/// </summary>[DllImport("user32.dll")]static extern IntPtr GetDC(IntPtr hdc);/// <summary>/// 释放DC句柄/// </summary>[DllImport("user32.dll", EntryPoint = "ReleaseDC")]static extern IntPtr ReleaseDC(IntPtr hWnd, IntPtr hdc);/// <summary>/// 获取句柄指定的数据/// </summary>[DllImport("gdi32.dll")]static extern int GetDeviceCaps(IntPtr hdc, int nIndex);/// <summary>/// 获取设置的分辨率(修改缩放,该值不改变)/// {Width = 1920 Height = 1080}/// </summary>/// <returns></returns>public static Size GetResolution(){Size size = new Size();IntPtr hdc = GetDC(IntPtr.Zero);size.Width = GetDeviceCaps(hdc, DeviceCapsType.DESKTOPHORZRES);size.Height = GetDeviceCaps(hdc, DeviceCapsType.DESKTOPVERTRES);ReleaseDC(IntPtr.Zero, hdc);return size;}/// <summary>/// 获取屏幕物理尺寸(mm,mm)/// {Width = 476 Height = 268}/// </summary>/// <returns></returns>public static Size GetScreenSize(){Size size = new Size();IntPtr hdc = GetDC(IntPtr.Zero);size.Width = GetDeviceCaps(hdc, DeviceCapsType.HORZSIZE);size.Height = GetDeviceCaps(hdc, DeviceCapsType.VERTSIZE);ReleaseDC(IntPtr.Zero, hdc);return size;}/// <summary>/// 获取屏幕的尺寸---inch/// 21.5/// </summary>/// <returns></returns>public static float GetScreenInch(){Size size = GetScreenSize();double inch = Math.Round(Math.Sqrt(Math.Pow(size.Width, 2) + Math.Pow(size.Height, 2)) / 25.4, 1);return (float)inch;}}/// <summary>/// GetDeviceCaps 的 nidex值/// </summary>public class DeviceCapsType{public const int DRIVERVERSION = 0;public const int TECHNOLOGY = 2;public const int HORZSIZE = 4;//以毫米为单位的显示宽度public const int VERTSIZE = 6;//以毫米为单位的显示高度public const int HORZRES = 8;public const int VERTRES = 10;public const int BITSPIXEL = 12;public const int PLANES = 14;public const int NUMBRUSHES = 16;public const int NUMPENS = 18;public const int NUMMARKERS = 20;public const int NUMFONTS = 22;public const int NUMCOLORS = 24;public const int PDEVICESIZE = 26;public const int CURVECAPS = 28;public const int LINECAPS = 30;public const int POLYGONALCAPS = 32;public const int TEXTCAPS = 34;public const int CLIPCAPS = 36;public const int RASTERCAPS = 38;public const int ASPECTX = 40;public const int ASPECTY = 42;public const int ASPECTXY = 44;public const int SHADEBLENDCAPS = 45;public const int LOGPIXELSX = 88;//像素/逻辑英寸(水平)public const int LOGPIXELSY = 90; //像素/逻辑英寸(垂直)public const int SIZEPALETTE = 104;public const int NUMRESERVED = 106;public const int COLORRES = 108;public const int PHYSICALWIDTH = 110;public const int PHYSICALHEIGHT = 111;public const int PHYSICALOFFSETX = 112;public const int PHYSICALOFFSETY = 113;public const int SCALINGFACTORX = 114;public const int SCALINGFACTORY = 115;public const int VREFRESH = 116;public const int DESKTOPVERTRES = 117;//垂直分辨率public const int DESKTOPHORZRES = 118;//水平分辨率public const int BLTALIGNMENT = 119;}/// <summary>/// 屏幕信息/// </summary>public class GPUInfo{/// <summary>/// 当前分辨率/// </summary>public Size CurrentResolution { get; set; }/// <summary>/// 最大分辨率/// </summary>public Size MaxScreenResolution { get; set; }}#endregion#region 硬盘信息public partial class ComputerInfo{/// <summary>/// 磁盘信息/// </summary>public static List<DiskInfo> GetDiskInfo(){List<DiskInfo> diskInfos = new List<DiskInfo>();try{var moc = new ManagementClass("Win32_LogicalDisk").GetInstances();foreach (ManagementObject mo in moc){var diskInfo = new DiskInfo();var diskInfoType = diskInfo.GetType();var diskInfoFields = diskInfoType.GetProperties().ToList();foreach (var item in mo.Properties){if (diskInfoFields.Exists(f => f.Name == item.Name)){var p = diskInfoType.GetProperty(item.Name);p.SetValue(diskInfo, item.Value);}}diskInfos.Add(diskInfo);}//B转GBfor (int i = 0; i < diskInfos.Count; i++){diskInfos[i].Size = Math.Round((double)(diskInfos[i].Size / 1024.0 / 1024.0 / 1024.0), 1);diskInfos[i].FreeSpace = Math.Round((double)(diskInfos[i].FreeSpace / 1024.0 / 1024.0 / 1024.0), 1);}}catch (Exception ex){}return diskInfos;}}/// <summary>/// 磁盘信息/// </summary>public class DiskInfo{/// <summary>/// 磁盘ID 如:D:/// </summary>public string DeviceID { get; set; }/// <summary>/// 驱动器类型。3为本地固定磁盘,2为可移动磁盘/// </summary>public uint DriveType { get; set; }/// <summary>/// 磁盘名称。如:系统/// </summary>public string VolumeName { get; set; }/// <summary>/// 描述。如:本地固定磁盘/// </summary>public string Description { get; set; }/// <summary>/// 文件系统。如:NTFS/// </summary>public string FileSystem { get; set; }/// <summary>/// 磁盘容量(GB)/// </summary>public double Size { get; set; }/// <summary>/// 可用空间(GB)/// </summary>public double FreeSpace { get; set; }public override string ToString(){return $"{VolumeName}({DeviceID}), {FreeSpace}GB is available for {Size}GB in total, {FileSystem}, {Description}";}}#endregion

可以获取下面这些信息:

ComputerCheck Info:
System Info:Windows 10 Enterprise, Enterprise, X64, Microsoft Windows 10.0.18363 
CPU Info:Intel(R) Core(TM) i3-8100 CPU @ 3.60GHz, 4 Core 4 Threads
RAM Info:12/15.8GB(75%)
GPU Info:1920*1080 / 1920*1080
Disk Info:系统(C:), 74.2GB is available for 238.1GB in total, NTFS, 本地固定磁盘
软件(D:), 151.9GB is available for 300GB in total, NTFS, 本地固定磁盘
办公(E:), 30.7GB is available for 300GB in total, NTFS, 本地固定磁盘
其它(F:), 256.3GB is available for 331.5GB in total, NTFS, 本地固定磁盘

参考文章:

WMI_04_常见的WMI类的属性_wmi scsilogicalunit_fantongl的博客-CSDN博客

C#获取计算机物理内存和可用内存大小封装类SystemInfo_c# 获得物理内存大小_CodingPioneer的博客-CSDN博客

https://www.cnblogs.com/pilgrim/p/15115925.html

win10各种版本英文名称是什么? - 编程之家

https://www.cnblogs.com/dongweian/p/14182576.html

C# 使用WMI获取所有服务的信息_c# wmi_FireFrame的博客-CSDN博客

WMI_02_常用WMI查询列表_fantongl的博客-CSDN博客

相关文章:

【C#】获取电脑CPU、内存、屏幕、磁盘等信息

通过WMI类来获取电脑各种信息&#xff0c;参考文章&#xff1a;WMI_04_常见的WMI类的属性_wmi scsilogicalunit_fantongl的博客-CSDN博客 自己整理了获取电脑CPU、内存、屏幕、磁盘等信息的代码 #region 系统信息/// <summary>/// 电脑信息/// </summary>public p…...

途乐证券-最准确的KDJ改良指标?

KDJ目标是技术剖析的一种重要目标之一&#xff0c;它是利用随机目标&#xff08;%R&#xff09;发展而来的&#xff0c;是一种反映商场超买和超卖状况的买卖目标。KDJ目标由快线&#xff08;K线&#xff09;、慢线&#xff08;D线&#xff09;和随机值&#xff08;J线&#xff…...

数据结构——线性表

文章目录 线性表的定义和基本操作顺序表线性表的链式表示 线性表的定义和基本操作 线性表是具有相同数据类型的(n≥0)个数据元素的有限序列&#xff0c;其中n为表长&#xff0c;当n0时线性表是一个空表。若用L命名线性表&#xff0c;则其中一般表示为&#xff1a;L(a1,a2,a3, …...

SpringBoot系列之基于Jersey实现文件上传API

前言 JAX-RS&#xff1a;JAX-RS是可以用可以用于实现RESTFul应用程序的JAVA API&#xff0c;给开发者提供了一系列的RESTFul注解Jersey&#xff1a;是基于JAX-RX API的实现框架&#xff0c;用于实现RESTful Web 服务的开源框架。 JAX-RX常用的注解&#xff1a; javax.ws.rs.Pa…...

【LangChain】Prompts之示例选择器

LangChain学习文档 【LangChain】向量存储(Vector stores)【LangChain】向量存储之FAISS【LangChain】Prompts之Prompt templates【LangChain】Prompts之自定义提示模板【LangChain】Prompts之示例选择器 概要 如果您有大量示例&#xff0c;您可能需要选择要包含在提示中的哪…...

Neo4j之CREATE基础

在 Neo4j 中&#xff0c;CREATE 语句用于创建节点、关系以及节点属性。 创建节点&#xff1a; CREATE (p:Person {name: John, age: 30});这个查询会创建一个具有 "Person" 标签的节点&#xff0c;节点属性包括 "name" 和 "age"。 创建带有关…...

Kali Hyper-V安装正常启动后 黑屏 只能进命令模式

问题: Hyper-V安装虚拟机Kali系统一切安装正常, 没有出现错误. 安装成功后重启,只能进入命令模式,tt1-tt6,进不去GUI桌面. 尝试: 一代二代虚拟硬盘都试过,同样问题,只能开进后进入命令模式,在命令模式下一切运行正常, 也修复过系统 GNOM等的,不管用. 以下为国外论坛给的建议,尝…...

【人工智能124种任务大集合】-集齐了自然语言处理(NLP),计算机视觉(CV),语音识别,多模态等任务

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能124种任务大集合&#xff0c;任务集合主要包括4大类&#xff1a;自然语言处理&#xff08;NLP&#xff09;、计算机视觉&#xff08;CV&#xff09;、语音识别、多模态任务。 我这里整理了124种应用场景任…...

IntelliJ IDEA快捷键大全

文章目录 1、构建/编译2、文本编辑3、光标操作4、文本选择5、代码折叠6、辅助编码7、上下文导航8、查找操作9、符号导航10、代码分析11、运行和调试12、代码重构13、全局 CVS 操作14、差异查看器15、工具窗口 本文参考了 IntelliJ IDEA 的官网&#xff0c;列举了IntelliJ IDEA&…...

阿里云轻量应用服务器_2核4G4M_2核2G3M_性能测评

阿里云轻量应用服务器2核2G3M带宽108元一年&#xff0c;系统盘为50GB高效云盘&#xff1b;轻量服务器2核4G4M带宽&#xff0c;60GB高效云盘297.98元12个月。目前轻量应用服务器只有2核2G和2核4G有活动&#xff0c;阿里云百科分享阿里云轻量应用服务器入口&#xff1a; 目录 阿…...

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)

题目&#xff1a;提取全部5页发布日热度的值&#xff0c;计算所有值的加和 地址&#xff1a;https://match.yuanrenxue.cn/match/2 思路分析 本题我们会简单说一下两种不同的方式去处理&#xff0c;一种是不还原混淆代码直接从源代码硬扣生成逻辑&#xff0c;另一种则是还原…...

ubuntu网络管理

主机-ip&#xff0c;service—port 分别查看/etc/hosts&#xff0c;/etc/host.conf&#xff1b;/etc/services&#xff0c;/etc/resolv.conf&#xff1b; 内核更新——linux-image-generic 6.2.0-24.24 非常抱歉&#xff0c;我误解了你的问题。如果你想更新已安装的内核版本…...

您可能并不需要单页应用程序

前端框架的迅速崛起&#xff0c;如React、Angel、Vue.js、Elm等&#xff0c;使得单页面应用程序&#xff08;Single Page Application&#xff09;在网络上无处不在。对于许多开发人员来说&#xff0c;这些已经成为他们“默认”工具集的一部分。当他们开始一个新项目时&#xf…...

基于低代码和数字孪生技术的电力运维平台设计

电力能源服务商在为用能企业提供线上服务的时候&#xff0c;不可避免要面对用能企业的各种个性化需求。如果这些需求和想法都要靠平台厂家研发人员来实现&#xff0c;那在周期、成本、效果上都将是无法满足服务运营需要的&#xff0c;这也是目前很多线上能源云平台应用效果不理…...

【Github】SourceTree技巧汇总

sourceTree登录github账户 会跳转到浏览器端 按照Git Flow 初始化仓库分支 克隆远程仓库到本地 推送变更到远程仓库 合并分支 可以看到目前的本地分支&#xff08;main、iOS_JS&#xff09;和远程分支&#xff08;origin/main、origin/HEAD、origin/iOS_JS&#xff09;目前所处…...

人工智能轨道交通行业周刊-第55期(2023.8.7-8.13)

本期关键词&#xff1a;北京智慧交通规划、成都数智化规划、关门车、集装箱标志、大模型隐私、视觉大模型 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交…...

向量数据库 Milvus Cloud Partition Key:租户数量多,单个租户数据少的三种解决方案

三种解决方案 这个问题提出的时候,Milvus 的最新版本是 2.2.8,我们做个角色互换,在当时站在这个用户的角度,留在我们面前的选择有这么几个: 为每个租户创建一个 collection 为每个租户创建一个 partition 创建一个租户名称的标量字段 接下来,我们依次分析下这三种方案的可…...

文本三剑客之grep命令和awk命令 1.0 版本

grep awk 1.grep命令1.1 基本格式1.2 常用选项 2.awk命令2.1 awk工作原理2.2 awk命令格式2.3 awk常用内置变量 1.grep命令 1.1 基本格式 grep [选项]… 查找条件 目标文件1.2 常用选项 选项功能 -m [ x ]匹配x次 后停止,x为具体数字-v取反 -i忽略字符大小写 -n显示匹配的 …...

【软件测试】Linux环境Ant调用Jmeter脚本并且生成测试报告(详细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 准备工作 需要在…...

MySQL的YEAR函数

MySQL的YEAR函数用于提取日期或日期时间值的年份部分。 语法&#xff1a; YEAR(date)参数&#xff1a; date&#xff1a;要提取年份的日期或日期时间值。 示例&#xff1a; SELECT YEAR(2023-08-09); -- 返回 2023SELECT YEAR(2023-08-09 14:16:20); -- 返回 2023注意事项…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...