- 博客(119)
- 资源 (75)
- 收藏
- 关注
原创 编译onnxruntime
4.下载成功后,后续多次重新编译都不用重新下载,删除下 .\build\Windows 即可。编译比较耗时,即使开启多核编译都需要很久,请耐心等待。2.onnx官方比较推荐使用vs2022编译,但是网上vs2019的资料居多,根据编译体验,我也更推荐vs2022。另外--minimal_build 对对于 CUDA 毫无意义,还会使得编译出错,带CUDA应该移除该选项。因为我想使得编译的dll更小,尝试了很多编译选项,作用不是很大。下载源码 git clone -b rel-3.流程还是差不多,
2025-01-27 09:55:27
415
转载 Redis与Hibernate集成
Hibernate 是一个Java的持久化框架,它可以将对象映射到数据库中的表,从而实现对数据库的操作。Spring Data Redis 是一个基于 Spring 的 Redis 客户端库,它提供了简单的 API 来实现 Redis 的操作。然后,我们创建了 Redis 的操作接口和实现类,并使用 Redis 的操作接口来实现 Redis 的操作。Hibernate 是一个Java的持久化框架,它可以将对象映射到数据库中的表,从而实现对数据库的操作。我们可以将 Redis 用于缓存,以减少数据库的负载。
2024-11-08 14:22:21
61
转载 正向代理与反向代理
在计算机网络领域,代理服务器扮演着至关重要的角色,它在服务器与客户端之间充当中间人的角色,有效地提高系统的安全性、性能和可扩展性。其中正向代理和反向代理是两种最为常见的代理方式。本文将详细介绍这两种代理方式的概念、特点、使用场景以及用途,帮助读者更好地理解它们在网络架构中的作用。正向代理和反向代理在计算机网络中各自发挥着重要的作用。正向代理主要关注客户端的访问需求和安全性,而反向代理则更注重后端服务器的负载均衡、安全性和性能优化。
2024-11-08 13:40:27
50
原创 混合软件架构(B/S & C/S)
本文介绍了首先分析了C/S架构和B/S架构的各自的优缺点,然后说明使用混合C/S架构和B/S架构的必要性,并以校园一卡通系统为例,综合实际情况,讨论了C/S和B/S混合架构的应用。实践证明,在系统开发中,使用B/S和C/S混合软件架构,能节省开发和维护成本,使系统具有良好的开放性,易扩展性,便于移植等优点。2010年3月,我所在的学校模拟组织开发了一套校园一卡通系统。在这个项目中,我担任系统系统架构师职务,主要负责该项目的的需求分析和系统设计的工作。3.B/S和C/S混合使用。2.B/S和C/S优缺点。
2023-09-19 21:40:42
2637
转载 论软件开发模型及应用
同时,还有这些实体如何与系统进行交互的各种流程,为了整理的更加准确和清晰,其间,我们与各个养老机构进行了反复沟通和确认,最终定义出尽量符合养老机构业务规范的通用流程,这样既满足了各种机构的业务要求,又能给成长中的养老机构提供更好的借鉴参考的空间,最后利用PowerDesigner的建立相关用例图和时序图,并整理相关的设计文档,以备后续系统设计使用。我们采用了基于组件的方式进行具体功能的构建,譬如,我们设计开发了通用登录模块,统一的权限管理模块,养老档案管理模块,工作查询模块,日志管理模块等。
2023-08-27 10:29:48
369
原创 Web系统设计
SOA是一个组件模型,一种设计理念,包含多个服务,服务之间通过相互依赖最终提供一系列完整的功能。各各服务通常以独立的形式部署运行,服务之间通过网路进行调用。ESB:简单来说是一根管道,用来连接各个服务节点。ESB的存在是为例集成基于不同协议的不同服务,ESB做了消息的转化、解释及路由的工作,以此来让不同的服务互联互通。ESB特点1、SOA的一种实现方式,ESB在面向服务的架构中起到的是总线作用,将各种服务进行连接与整合;2、描述服务的元数据和服务注册管理。
2023-08-13 14:59:58
1138
原创 数据库系统相关知识
12:关系 & NoSQL 14:扩展机制(分区 & MySQL主从复制)& 缓存机制 15:关系 & 文件 & 内存 17:ORM 18:分布式缓存(Redis & Memcache):是建立在关系模型基础上的数据库,借助集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。简单说,关系型数据库是由多张能互相联接的二维行列表格组成的数据库。
2023-08-12 21:12:25
130
原创 项目生命周期模型
原则:快速迭代、让测试和开发参与需求讨论、编写可测试的需求文档、多沟通减少文档、做好产品原型、尽早考虑测试。的项目,可以在项目周期中不断进行风险评估和调整,但需要投入大量的时间和人力成本。的项目,但缺点是原型难以与实际系统集成、开发人员可能会陷入过多开发原型的陷阱。的项目,但缺点是开发周期长、不适应需求变更、测试和修复漏洞成本高。的项目,可以快速响应需求变化,但需要团队成员的高度协作和沟通。,可以提高测试效率,但需要考虑好测试用例的设计和覆盖率。是一种测试驱动的模型,将。
2023-07-23 20:35:19
156
原创 软件系统知识
主要任务是回答系统“怎么做”的问题,根据系统说明书规定功能要求,具体设计实现逻辑模型的技术方案,设计新系统的物理模型。甘特图是一种简单的水平条形图,它以一个日历为基准描述项目任务,横坐标表示时间,纵坐标表示任务,图中的水平线段表示对一个任务的进度安排,线段的起点和终点对应在横坐标上的时间分别表示该任务的开始时间和结束时间,线段的长度表示完成该任务所需的时间。主要任务是回答系统“做什么”问题,指出现行系统的局限性和不足之处,确定新系统的基本目标和逻辑功能要求,提出新系统的逻辑模型。将设计的系统付诸实施。
2023-07-22 11:55:24
206
原创 UML建模与架构文档化
而活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。基础用例是实实在在与用户需求有对应关系的用例,是从用户需求获取的渠道得到的,而抽象用例是从基础用例中抽取的用例的公共部分,是为了避免重复工作,优化结构而提出的用例。它描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,可以表达并发执行的过程,可以有多个结束状态。而基本用例用于设计阶段,描述了用例的实现方式。通信协作图是一种交互图,它强调的是发送和接收消息的对象之间的组织结构,强调通信的方式。
2023-07-22 11:49:42
412
原创 软件架构设计 ABSD/DSSA/SAAM/ATAM
架构权衡分析方法ATAM是一种基于场景的系统架构评估方法,主要在系统开发之前,针对性能、可用性、安全性和可修改性等质量属性进行评价和折中。ATAM分为4个主要的活动包括场景和需求收集、架构视图描述、属性模型构造和分析、架构决策和折中,整个评估过程强调以属性作为架构评估的核心概念。软件架构分析方法SAAM是一种基于场景的系统架构评估方法,最初是用来分析架构的可修改性的,但实践证明也可用于对许多其它质量属性及系统功能的快速评估。分析类图是从业务领域获取信息的,在描述上更多的使用了业务领域的语言和词汇。
2023-07-22 11:29:05
3173
1
原创 典型与层次式架构设计
接口是采用中立的方式进行定义的,它独立于实现服务的硬件平台、操作系统和编程语言,这使得构件在各系统中的服务以一种统一和通用的方式进行交互。特定领域软件架构DSSA是在一个特定应用领域中为一组应用提供组织结构参考的标准软件架构,是一个特定的问题领域中支持一组应用的领域模型、参考需求、参考架构等组成的开发基础,其目标是支持在一个特定领域中多个应用的生成。2个领域:垂直域是在一个特定领域中通用的软件架构,是一个完整的架构。2、视图:是用户看到并与之交互的界面,视图向用户显示相应的数据,并能接收用户的输入。
2023-07-22 11:13:01
177
原创 软件架构风格
因为管道过滤器是把数据处理职能做成过滤器,把数据传递做成管道,此时如果流程不发生变化,是可以通过这种方式实现的,但一旦流程变化,或是扩展功能,需要对过滤器进行修改调整,或是流程在程序层面重建,此时必须修改代码完成任务。机器学习流程定义的灵活性高,可扩展能力强,因为解释器风格可以通过自定义流程规则及配套流程解释引擎开发,做到用户层面的流程完全定义,而不需要修改代码,所以无论是修改已有的业务流程,还是要扩展不同的角色,创建新角色的流程都非常便利。连接件是对象间交互的方式,对象是通过函数和过程调用来交互的。
2023-07-22 10:51:15
577
原创 数据库基础知识
特定应用难度较小关系模式难度较大2. 冗余程度:冗余较大冗余较少3. 数据架构:应用系统数据库4. 应用扩展性:难共享容易共享1. 数据模型:关系模式2. 读写性能:读写内存性能较高读写外存性能较低3. 存储容量:内存存储容量受限磁盘存储容量大4. 可靠性:恢复复杂可靠性低可靠性高。
2023-07-21 20:30:05
314
原创 设计模式基本概念
行为型11种(责备三者两器,命令状态莫策)包括:责任链、备忘录、访问者、中介者、观察者、迭代器、解释器、命令、状态、模板方法、策略模式。访问者模式Visitor:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素新的操作,为数据结构中的每个元素提供多种访问方式。备忘录模式Memento:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态,它提供了一种可以恢复状态的机制。
2023-07-21 20:12:49
96
转载 C/C++ Memory Layout
本文介绍了 C/C++ 中由源程序到可执行文件的步骤,和可执行程序的内存布局,数据存储类别,最后还通过一个例子来说明。可执行程序中的变量在内存中的布局可以总结为如下:变量(函数外):如果未初始化,则存放在 BSS 段;否则存放在 data 段变量(函数内):如果没有指定 static 修饰符,则存放在栈中;否则同上常量:存放在文本段.text函数参数:存放在栈或寄存器中内存可以分为以下几段:文本段:包含实际要执行的代码(机器指令)和常量。它通常是共享的,多个实例之间共享文本段。
2022-12-19 08:28:07
475
转载 C++ 编程规范
我们所使用的标准算法是由实现标准容器的那些人实现的,就凭他们对内幕的了解,所编写的算法的效率,就绝非你我编写的任何版本所能相提并论。但是最重要的还在于,许多算法的实现精巧绝伦,你我这样的一线程序员手工编写的代码也是不可能与之一较短长的。如果创建 “编译器防火墙” 将调用代码与类的私有部分完全隔离是明智的,就应该使用 Pimpl 惯用法:将私有部分隐藏在一个不透明的指针(即指向已经声明但是尚未定义的类的指针,最好是选择合适的智能指针)后面。函数对象的适配性好,而且与直觉相反,他们产生的代码一般比函数要快。
2022-12-19 08:23:33
901
原创 C++基础知识 const
/ 常量指针 (指向常量的指针)-- 指向字符串常量,所指向的字符串内容不能变,但是指向的地址可以变化。// 指针常量 -- 指针本身是常量,指向的地址不可以变化,但是指向的地址所对应的内容可以变化。// 错误 因为这是一个常量指针 指针所指向的内容不能改变。// 错误 因为这是一个指针常量,指针所指向的地址不能改变。
2022-12-19 08:22:13
272
转载 BYTE,WORD,DWORD 的大小及一些特殊的 “高低位宏“
在 Visual C++ 6.0 中,char 型长度为 1 字节,short 型长度为 2 字节,int 和 long 型长度都为 4 字节,因此可以认为 BYTE 与 WORD,DWORD 定义的变量分别获得了 1 字节,2 字节,4 字节内存,正与 BYTE 与 WORD,DWORD 的字面意义相符。如:printf ("w 的高位字节:% x/n",HIBYTE (w));// 输出:w 的高位字节:ed。如:printf ("l 的高位字:% x/n",HIWORD (l));
2022-12-19 08:17:27
950
原创 最短路径算法
*-------------------------------------- 主函数 ---------------------------------------*//*-------------------------------------- 函数菜单操作 ------------------------------*//*--------------------------------- 有向图 函数操作 --------------------------*/
2022-12-18 10:58:33
320
原创 三元一次方程组
{}{d3 * c1);}{a1 = 1;b1 = 2;c1 = 2;d1 = 4;a2 = 5;b2 = 6;c2 = 7;d2 = 8;a3 = 9;}
2022-12-18 10:56:15
607
原创 C++ 内存泄露和检测
在上面程序中,调用_CrtDumpMemoryLeaks () 来检测内存泄露,如果程序可能在多个地方终止,必须在多个地方调用这个函数,这样比较麻烦,可以在程序起始位置调用_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF),这样无论程序何时终止,都会在终止前调用_CrtDumpMemoryLeaks ()。2、“无主” 内存:申请内存后,指针指向内存的起始地址,若丢失或修改这个指针,那么申请的内存将丢失且没有释放。
2022-12-18 10:39:23
1885
原创 C# 中的 Infinity 和 NaN
但是,double 和 float 类型实际上有一个可以表示无穷大的特殊值:5.0/0.0 = Infinity(无穷大),这个规则唯一的例外是 0.0/0.0 = NaN (Not a Number)。C# 语言中,对于 int,long 和 decimal 类型的数,任何数除以 0 所得的结果是无穷大,不在 int,long 和 decimal 类型的范围之内,所以计算 6/0 之类的表达式会出错。
2022-12-18 10:38:37
2026
原创 数组作函数参数传递和函数返回值
void fun(int a[] ) 或者 void fun (int a[长度]) 调用的时候就可以直接使用 fun(a)void fun(int a[][6] ) 调用的时候就可以直接使用 fun(a)。如果要将数组 a[][] 传递给函数 fun(),这个函数的定义中形参需要这样定义。如果要将数组 a[] 传递给函数 fun(),这个函数的定义中形参需要这样定义。例:用 typedef 定义一个新的类型。
2022-12-18 10:37:03
277
转载 C/C++ Memory Layout
本文介绍了 C/C++ 中由源程序到可执行文件的步骤,和可执行程序的内存布局,数据存储类别,最后还通过一个例子来说明。可执行程序中的变量在内存中的布局可以总结为如下:变量(函数外):如果未初始化,则存放在 BSS 段;否则存放在 data 段变量(函数内):如果没有指定 static 修饰符,则存放在栈中;否则同上常量:存放在文本段.text函数参数:存放在栈或寄存器中内存可以分为以下几段:文本段:包含实际要执行的代码(机器指令)和常量。它通常是共享的,多个实例之间共享文本段。
2022-12-18 10:21:51
166
原创 C# out 和 ref 用法
要说明的是:只要他在定义的时候被赋值过(包括空值),调用函数时都取定义时所赋的值,但是如果在定义时不做任何处理,则取调用时所赋的值。// 这里对 ref 修饰的 str1 的操作可以不做任何处理,则在函数调用时取值。但在调用的时候要求相对宽松,不需要任何赋值或初始化为空操作,输出的结果也就只能取在定义的时候所赋的值。// 这里对 out 修饰的 str2 的操作可以仅仅只做声名。以 ref 修饰的变量在定义的时候要求不严格, 三种情况都是可以的:1. 赋值;//out 不需要初始化。
2022-12-18 10:20:25
1427
原创 EASY_SIZE: 控件随窗口变化自由调整大小
(3).Options: 可以为 ES_HCENTER, ES_VCENTER 的结合,options 可置 0。3. 在对话框类定义的最前面添加 DECLARE_EASYSIZE (注意:没有分号)ES_HCENTER 表示缩放后控件在指定位置内水平居中;(1).control: 需要调整大小的控件的 ID;2. 添加 #include"easysize.h"BEGIN_EASYSIZE_MAP (对话框类名)控件 ID 值: 当前控件与指定控件之间的距离;ES_BORDER: 控件与对话框边界的距离;
2022-12-18 10:19:19
147
原创 C++ 指针 —02 指针与引用的对比
●“sizeof 引用” 得到的是所指向的变量 (对象) 的大小,而 “sizeof 指针” 得到的是指针本身的大小;指针可以被重新赋值指向不同的对象。引用不能被修改,但是指向的对象其内容可以修改。在使用引用之前不需要测试它的合法性,指针则总是被测试,防止其为空。指针指向一块内存,它的内容是所指内存的地址;●引用没有 const,指针有 const,const 的指针不可变;●引用是类型安全的,而指针不是 (引用比指针多了类型检查)●指针是一个实体,而引用仅是个别名;●引用不能为空,指针可以为空;
2022-12-17 12:52:15
68
原创 C++ 指针 —01 指针与数组的对比
同理,比较 b 和 a 的内容是否相同,不能用 if (b==a) 来判断,应该用标准库函数 strcmp 进行比较。要想复制 a 的内容,可以先用库函数 malloc 为 p 申请一块容量为 strlen (a)+1 个字符的 内存,再用 strcpy 进行字符串复制。a 的内容可以改变,如 a [0]= ‘X’。if (strcmp (b, a) == 0) // 不能用 if (b == a)if (strcmp (p, a) == 0) // 不要用 if (p == a)
2022-12-17 12:51:21
305
原创 C++\C# 数据类型问题 危险!!!
/////////////////////////// 封装方法 ////////////////////////////////////////int X = 0xfff43843;但是我们将 C++ 代码封装成 Dll,用 C# 程序去调用就不是上述那样了。1. 在 C++ 中。
2022-12-17 12:50:01
225
原创 关于纯虚函数
/ 错误: '->A::fun' : left operand has 'class' type, use '.’// 错误:left of '.fun' must have class/struct/union。// 错误:left of '.fun' must have class/struct/union。// 错误:C 并没有实现基类的纯虚函数,所以 C 仍是抽象类,不能建立对象。//3. 如果派生类只是简单地继承了抽象类的纯虚函数,而没有重新定义基类的纯虚函数,则派生类也是一个抽象类。
2022-12-17 12:48:24
526
原创 基础知识点--const
/ 常量指针 (指向常量的指针)-- 指向字符串常量,所指向的字符串内容不能变,但是指向的地址可以变化。// 指针常量 -- 指针本身是常量,指向的地址不可以变化,但是指向的地址所对应的内容可以变化。// 错误 因为这是一个常量指针 指针所指向的内容不能改变。// 错误 因为这是一个指针常量,指针所指向的地址不能改变。
2022-12-17 12:47:50
150
原创 基础知识点--继承
/error:基类中私有成员在派生类中是不可见的,对对象不可见。//error:基类的保护成员在派生类中为保护成员,对对象不可见。//error:基类中私有成员在派生类中是不可见的,对对象不可见。//error:基类的保护成员在派生类中为私有成员,对对象不可见。//error:基类中私有成员在派生类中是不可见的,对对象不可见。//error:基类的保护成员在派生类中为保护成员,对对象不可见。//error:基类的公共成员在派生类中为保护成员,对对象不可见。//ok:基类的保护成员在派生类中为保护成员。
2022-12-17 12:47:21
507
Visual Assist X 10.9.2248.0-vs2017亲测可用.zip
2019-07-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人