北网站建设二手房网站谁做的更好

bicheng/2026/1/16 6:28:29/文章来源:
北网站建设,二手房网站谁做的更好,网站如何上传,朝阳网站建设培训原文来自互联网#xff0c;由长沙DotNET技术社区编译。 .NET中的内存管理资源分配Microsoft .NET公共语言运行时要求从托管堆分配所有资源。当应用程序不再需要对象时#xff0c;它们将自动释放。初始化进程后#xff0c;运行时将保留地址空间的连续区域#xff0c;该区域最… 原文来自互联网由长沙DotNET技术社区编译。 .NET中的内存管理资源分配Microsoft .NET公共语言运行时要求从托管堆分配所有资源。当应用程序不再需要对象时它们将自动释放。初始化进程后运行时将保留地址空间的连续区域该区域最初没有为其分配存储空间。该地址空间区域是托管堆。堆还维护一个指针。该指针指示下一个对象将在堆中分配的位置。最初将指针设置为保留地址空间区域的基地址。应用程序使用new运算符创建一个对象。该运算符首先确保新对象所需的字节适合保留区域必要时进行存储。如果对象合适则指针指向堆中的对象调用该对象的构造函数并且new运算符返回该对象的地址。上图显示了一个由三个对象组成的托管堆AB和C。要分配的下一个对象将放置在NextObjPtr指向的位置紧随对象C之后。当应用程序调用new运算符创建对象时该区域中可能没有足够的地址空间分配给该对象。堆通过将新对象的大小添加到NextObjPtr来检测到这一点。如果NextObjPtr超出地址空间区域的末尾则堆已满必须执行收集。实际上当第0代完全填满时发生收集。简而言之生成是由垃圾收集器实现以提高性能的一种机制。这个想法是新创建的对象是年轻一代的一部分而在应用程序生命周期的早期创建的对象是老一代的对象。将对象分成几代可以使垃圾收集器收集特定的世代而不是收集托管堆中的所有对象。垃圾收集算法垃圾收集器检查以查看堆中是否有不再由应用程序使用的对象。如果存在此类对象则可以回收这些对象使用的内存。如果没有更多的内存可用于堆则new运算符将引发OutOfMemoryException。每个应用程序都有一组根。根标识存储位置这些存储位置引用托管堆上的对象或设置为null的对象。例如应用程序中的所有全局和静态对象指针都被视为应用程序根目录的一部分。另外线程堆栈上的任何局部变量/参数对象指针都被视为应用程序根目录的一部分。最后任何包含指向托管堆中对象的指针的CPU寄存器也被视为应用程序根目录的一部分。活动根的列表由即时JIT编译器和公共语言运行时维护并且可以由垃圾收集器的算法访问。当垃圾收集器开始运行时它假定堆中的所有对象都是垃圾。换句话说它假定应用程序的任何根都没有引用堆中的任何对象。现在垃圾收集器开始遍历根目录并为从根目录可访问的所有对象建立图形。例如垃圾收集器可以定位一个指向堆中对象的全局变量。下图显示了具有几个已分配对象的堆其中应用程序的根直接引用对象ACD和F。所有这些对象都成为图形的一部分。在添加对象D时收集器会注意到该对象引用了对象H并且对象H也已添加到图中。收集器将继续递归遍历所有可到达的对象。图的这一部分完成后垃圾收集器将检查下一个根并再次遍历对象。当垃圾收集器从一个对象移动到另一个对象时如果它试图将一个对象添加到先前添加的图形中则垃圾收集器可以停止沿该路径移动。这有两个目的。首先它不会多次遍历一组对象因此可以显着提高性能。其次如果您有任何循环链接的对象列表它可以防止无限循环。一旦检查完所有的根垃圾收集器的图形就会包含从应用程序的根以某种方式可以访问的所有对象的集合。应用程序无法访问该图中未包含的任何对象因此将其视为垃圾。垃圾收集器现在线性地遍历堆寻找垃圾对象的连续块现在被认为是可用空间。然后垃圾收集器将非垃圾对象向下移动到内存中使用标准的memcpy函数从而消除了堆中的所有间隙。当然在内存中移动对象会使指向该对象的所有指针无效。因此垃圾收集器必须修改应用程序的根以便指针指向对象的新位置。另外如果任何对象包含指向另一个对象的指针则垃圾回收器还负责更正这些指针。下图显示了收集后的托管堆。在识别完所有垃圾之后所有非垃圾都已压缩所有非垃圾指针都已固定NextObjPtr定位在最后一个非垃圾对象之后。此时再次尝试新操作并成功创建应用程序请求的资源。GC会对性能产生重大影响这是使用托管堆的主要缺点。但是请记住GC仅在堆已满时才发生并且在此之前托管堆要比C运行时堆快得多。运行时的垃圾收集器还使用Generations提供了一些优化可以大大提高垃圾收集的性能。您不再需要实现管理应用程序使用的任何资源的生存期的任何代码。现在不可能泄漏资源因为可以在某个时候收集从应用程序的根目录无法访问的任何资源。此外也无法访问已释放的资源因为如果可访问资源将不会被释放。如果无法访问则您的应用程序无法访问它。以下代码演示了如何分配和管理资源class Application { public static int Main(String[] args) { // ArrayList object created in heap, myArray is now in root ArrayList myArray new ArrayList(); // Create 10000 objects in the heap for (int x 0; x 10000; x) { myArray.Add(new Object()); // Object object created in heap } // Right now, myArray is a root (on the threads stack). So, // myArray is reachable and the 10000 objects it points to are also reachable. Console.WriteLine(myArray.Count); // After the last reference to myArray in the code, myArray is not a root. // Note that the method doesnt have to return, the JIT compiler knows // to make myArray not a root after the last reference to it in the code. // Since myArray is not a root, all 10001 objects are not reachable // and are considered garbage. However, the objects are not // collected until a GC is performed. } } 如果GC非常出色那么您可能想知道为什么它不在ANSI C 中。原因是垃圾收集器必须能够标识应用程序的根还必须能够找到所有对象指针。C 的问题在于它允许将指针从一种类型转换为另一种类型并且无法知道指针所指的是什么。在公共语言运行库中托管堆始终知道对象的实际类型并且元数据信息用于确定对象的哪些成员引用其他对象。世代纯粹为了提高性能而存在的垃圾收集器的一个功能称为“世代”。分代垃圾收集器也称为临时垃圾收集器进行以下假设•对象越新其生存期就会越短。•对象越旧其寿命将越长。•较新的对象往往彼此之间具有很强的关系并且经常在同一时间访问。•压缩一部分堆比压缩整个堆要快。初始化后托管堆不包含任何对象。如下图所示添加到堆中的对象被称为第0代。简而言之第0代中的对象是从未被垃圾收集器检查过的年轻对象。Memory6.gif现在如果将更多对象添加到堆中则将填充堆并且必须进行垃圾回收。垃圾收集器分析堆时将构建垃圾此处以绿色显示和非垃圾对象的图形。可以将收集到的所有对象压缩到堆的最左侧。这些对象在收藏中幸存下来并且更旧现在被认为是第一代。随着更多对象添加到堆中这些新的年轻对象将放置在第0代中。如果再次填充第0代则会执行GC。这次将第1代中幸存的所有对象压缩并视为第2代请参见下图。现在压缩了第0代中的所有幸存者并认为它们是第1代。第0代当前不包含任何对象但是所有新对象将进入第0代。当前第二代是运行时的垃圾收集器支持的最高一代。当将来发生收集时当前第2代中尚存的所有对象仅保留在第2代中。世代GC性能优化分代垃圾收集提高了性能。当堆填满并发生收集时垃圾收集器可以选择仅检查第0代中的对象而忽略任何更大的后代中的对象。毕竟对象越新则预期寿命越短。因此收集和压缩第0代对象很可能会从堆中回收大量空间并且比收集器检查所有代的对象要快。分代收集器可以通过不遍历托管堆中的每个对象来提供更多优化。如果根或对象引用的是旧对象则垃圾收集器可以忽略任何较旧对象的内部引用从而减少了构建可访问对象图所需的时间。当然旧对象可能是指新对象。为了检查这些对象收集器可以利用系统的写监视支持由Kernel32.dll中的Win32 GetWriteWatch函数提供。此支持使收集器知道自上次收集以来已将哪些旧对象如果有写入了。可以检查这些特定的旧对象的引用以查看它们是否引用了任何新对象。如果收集第0代未提供必要的存储量则收集器可以尝试收集第1代和第0代的对象。如果所有其他操作均失败则收集器可以收集第2代第1代和第9代的所有对象。0。前面提到的一种假设是较新的对象之间往往具有很强的关系并且经常在同一时间访问。由于新对象是在内存中连续分配的因此您可以从引用的位置获得性能。更具体地说很可能所有对象都可以驻留在CPU的缓存中。您的应用程序将以惊人的速度访问这些对象因为CPU将能够执行其大多数操作而不会导致强制RAM访问的高速缓存未命中。微软的性能测试表明托管堆分配比Win32 HeapAlloc函数执行的标准分配更快。这些测试还表明在200 MHz Pentium上执行第0代完整GC所需的时间少于1毫秒。Microsoft的目标是使GC花费的时间不比普通页面错误多。Win32堆的缺点•大多数堆例如C运行时堆在找到可用空间的任何地方分配对象。因此如果我连续创建多个对象则这些对象很有可能将被兆字节的地址空间分隔开。但是在托管堆中连续分配几个对象可确保对象在内存中是连续的。•从Win32堆分配内存时必须检查该堆以找到可以满足请求的内存块。这在托管堆中不是必需的因为此处对象在内存中是连续的。•在Win32堆中必须维护堆维护的数据结构。另一方面托管堆仅需要增加堆指针。终接器垃圾收集器提供了您可能想利用的其他功能终结处理。最终确定允许资源在被收集后对其进行适当的清理。通过使用终结处理当垃圾回收器决定释放资源的内存时代表文件或网络连接的资源便能够正确清理自身。当垃圾收集器检测到对象是垃圾时垃圾收集器将调用对象的Finalize方法如果存在然后回收该对象的内存。例如假设您具有以下类型在C中 public class BaseObj { public BaseObj() { } protected override void Finalize() { // Perform resource cleanup code here // Example: Close file/Close network connection Console.WriteLine(In Finalize.); } } 现在您可以通过调用以下内容来创建该对象的实例BaseObj bo new BaseObj(); 将来的某个时候垃圾收集器将确定该对象为垃圾。发生这种情况时垃圾收集器将看到该类型具有Finalize方法并将调用该方法从而使“ In Finalize”出现在控制台窗口中并回收该对象使用的内存块。许多习惯于使用C 进行编程的开发人员都会在析构函数和Finalize方法之间建立直接的关联。但是对象终结处理和析构函数具有非常不同的语义在考虑终结处理时最好忘记您对析构函数的了解。受管对象永远不会有析构函数。设计类型时最好避免使用Finalize方法。有几个原因•可终结对象被提升为较早的一代这增加了内存压力并在垃圾收集器确定对象为垃圾时阻止了对象的内存被收集。此外该对象直接或间接引用的所有对象也将得到提升。•可终结对象需要更长的分配时间。•强制垃圾收集器执行Finalize方法会严重影响性能。请记住每个对象都已完成。因此如果我有10,000个对象的数组则每个对象都必须调用其Finalize方法。•终结对象可以引用其他不可终结对象从而不必要地延长其寿命。实际上您可能需要考虑将类型分为两种不同的类型一种轻型类型其具有不引用任何其他对象的Finalize方法一个单独的类型其类型不具有引用其他对象的Finalize方法。•您无法控制Finalize方法何时执行。该对象可能会保留资源直到下一次垃圾收集器运行为止。•当应用程序终止时某些对象仍然可以访问并且不会调用其Finalize方法。如果后台线程正在使用对象或者在应用程序关闭或AppDomain卸载期间创建了对象则会发生这种情况。此外默认情况下应用程序退出时不可达对象不会调用Finalize方法因此应用程序可能会迅速终止。当然将回收所有操作系统资源但是托管堆中的任何对象都无法正常清理。您可以通过调用System.GC类型的RequestFinalizeOnShutdown方法来更改此默认行为。但是应谨慎使用此方法因为调用它意味着您的类型正在控制整个应用程序的策略。•运行时无法保证Finalize方法的调用顺序。例如假设有一个对象包含一个指向内部对象的指针。垃圾收集器检测到两个对象都是垃圾。此外假设首先调用内部对象的Finalize方法。现在允许外部对象的Finalize方法访问内部对象并对其调用方法但是内部对象已完成并且结果可能无法预测。因此强烈建议Finalize方法不要访问任何内部成员对象。如果确定类型必须实现Finalize方法则请确保代码尽快执行。避免所有会阻止Finalize方法的操作包括任何线程同步操作。另外如果您让任何异常转义了Finalize方法则系统仅假定Finalize方法已返回并继续调用其他对象的Finalize方法。当编译器为构造函数生成代码时编译器会自动插入对基本类型的构造函数的调用。同样当C 编译器为析构函数生成代码时编译器会自动插入对基本类型的析构函数的调用。终结方法不同于析构函数。编译器对Finalize方法没有特殊知识因此编译器不会自动生成代码以调用基本类型的Finalize方法。如果您想要这种行为并且经常这样做那么必须从类型的Finalize方法中显式调用基本类型的Finalize方法 public class BaseObj { public BaseObj() { } protected override void Finalize() { Console.WriteLine(In Finalize.); base.Finalize(); // Call base types Finalize } } 请注意通常将基类型的Finalize方法称为派生类型的Finalize方法中的最后一条语句。这样可以使基础对象保持尽可能长的生命。由于调用基本类型的Finalize方法很常见因此C的语法简化了您的工作。在C中以下代码class MyObject { MyObject() { } }终结内部当应用程序创建新对象时新运算符将从堆中分配内存。如果对象的类型包含Finalize方法则将指向该对象的指针放在终结队列中。终结队列是由垃圾收集器控制的内部数据结构。队列中的每个条目都指向一个对象在可以回收该对象的内存之前应调用该对象的Finalize方法。下图显示了包含多个对象的堆。从应用程序的根目录可以访问其中的某些对象而某些则不能。创建对象CEFI和J时系统检测到这些对象具有Finalize方法并将指向这些对象的指针添加到了终结队列中。发生GC时对象BEGHI和J被确定为垃圾。垃圾收集器扫描完成队列以查找指向这些对象的指针。当找到一个指针时该指针将从终结队列中删除并附加到易碎队列发音为“ F-reachable”。易碎队列是由垃圾收集器控制的另一个内部数据结构。易碎队列中的每个指针都标识一个对象该对象已准备好调用其Finalize方法。收集之后托管堆如下图所示。在这里您看到对象BG和H占用的内存已被回收因为这些对象没有需要调用的Finalize方法。但是无法回收对象EI和J占用的内存因为尚未调用它们的Finalize方法。有一个专用的运行时线程专用于调用Finalize方法。当可访问队列为空时通常是这种情况该线程进入睡眠状态。但是当出现条目时该线程将唤醒从队列中删除每个条目并调用每个对象的Finalize方法。因此您不应在Finalize方法中执行任何有关执行代码的线程的假设的代码。例如避免在Finalize方法中访问线程本地存储。终结队列与易碎队列的交互非常有趣。首先让我告诉您易碎队列的名称。f很明显代表定稿易碎队列中的每个条目都应调用其Finalize方法。名称的“可到达”部分表示对象可到达。换句话说易碎队列被视为根就像全局变量和静态变量是根一样。因此如果对象在易碎队列中则该对象可访问且不是垃圾。简而言之当对象不可访问时垃圾收集器将其视为对象垃圾。然后当垃圾收集器将对象的条目从终结队列移到可访问队列时该对象不再被视为垃圾并且不回收其内存。至此垃圾收集器已经完成了对垃圾的识别。某些标识为垃圾的对象已被重新分类为非垃圾。垃圾收集器压缩可回收内存特殊的运行时线程清空易碎队列执行每个对象的Finalize方法。下次调用垃圾回收器时它会看到最终对象是真正的垃圾因为应用程序的根不指向该对象并且易碎队列不再指向该对象。现在只需回收该对象的内存即可。这里要了解的重要一点是需要两个GC来回收需要终结处理的对象使用的内存。实际上可能需要两个以上的集合因为这些对象可以提升为较老的一代。上图显示了第二个GC之后托管堆的外观。处置方法使用此方法可以关闭或释放由实现此接口的类的实例持有的非托管资源例如文件流和句柄。按照惯例此方法用于与释放对象拥有的资源或准备对象重用相关的所有任务。在实现此方法时对象必须设法通过在包含层次结构中传播调用来确保释放所有保留的资源。例如如果对象A分配了对象B而对象B分配了对象C则A的Dispose实现必须调用B上的Dispose后者又必须调用C上的Dispose。对象还必须调用其基类的Dispose方法。如果基类实现IDisposable。如果多次调用对象的Dispose方法则该对象必须忽略第一个调用之后的所有调用。如果多次调用其Dispose方法则该对象不得引发异常。如果由于已释放资源并且以前未调用过Dispose而发生错误则Dispose可能引发异常。因为必须显式调用Dispose方法所以实现IDisposable的对象还必须实现终结器以在不调用Dispose时处理释放资源。默认情况下垃圾回收器将在回收对象的内存之前自动调用其终结器。但是一旦调用了Dispose方法垃圾收集器通常就不需要调用已处理对象的终结器。为了防止自动完成Dispose实现可以调用GC.SuppressFinalize方法。通过System.GC直接控制System.GC类型使您的应用程序可以直接控制垃圾收集器。您可以通过读取GC.MaxGeneration属性来查询托管堆支持的最大生成量。当前GC.MaxGeneration属性始终返回2。也可以通过调用此处显示的两个方法之一来强制垃圾收集器执行收集void GC.Collect(Int32 Generation) void GC.Collect()第一种方法允许您指定要收集的世代。您可以将0范围内的任何整数传递给GC.MaxGeneration含。传递0导致生成0被收集传递1导致收集第1代和第0代传递2会导致生成2、1、0和0。不带参数的Collect方法的版本强制所有世代的完整集合等效于调用GC.CollectGC.MaxGeneration;GC类型还提供了WaitForPendingFinalizers方法。此方法只是挂起调用线程直到处理易碎队列的线程清空了队列然后调用每个对象的Finalize方法。在大多数应用程序中您不太可能需要调用此方法。最后垃圾收集器提供了两种方法可让您确定对象当前处于哪个世代Int32 GetGenerationObject obj Int32 GetGenerationWeakReference wrGetGeneration的第一个版本将对象引用作为参数而第二个版本将WeakReference引用作为参数。当然返回的值将介于0到GC.MaxGeneration之间含。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/90056.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

吴中快速建设网站价格福清市建设局网站

题目大意 给你一棵树&#xff0c;距离为2的两个点代价为wi∗wjw_i*w_jwi​∗wj​&#xff0c;问你最小代价和代价之和 解题思路 搜索这棵树&#xff0c;每次拿父亲和子节点一起计算即可 代码 #include<cstdio> #include<cstring> #include<algorithm> #de…

为什么要建设医院网站丝绸之路网站建设意义

文章目录 构建带maven环境的jenkins 镜像安装jenkinsjenkins yaml 文件安装插件jenkins 配置k8s创建用户凭证 构建带maven环境的jenkins 镜像 # 构建带 maven 环境的 jenkins 镜像 docker build -t 192.168.113.122:8858/library/jenkins-maven:jdk-11 .# 登录 harbor docker …

初学者想学网站建设wordpress自带jquery

算术运算符 算术运算符主要是针对数值类型和长整型&#xff1b;包括有加法、减法、乘法、除法、自增、自减等运算 加法&#xff08;&#xff09; let x:number1let y:number 2console.log(xy)减法&#xff08;-&#xff09; let x:number1let y:number 2console.log(y-x)乘法…

企业网站建设与网页设计学什么的公司内部网络怎么建立

目录 硬件检查 软件检查 调试步骤 硬件检查 硬件工程师检查原理图和PCB&#xff0c;核查RGMII线路连接是否正确&#xff0c;PHY的 TX连接对端 RX&#xff0c;PHY的RX连接对端TX&#xff0c;原理图上以引脚序号引脚名 引脚类型(输入还是输出)逐一核查RGMII接口各个网络&#…

一条龙搭建网站没有网站流量怎么办

项目中遇到pdf文件漏字&#xff0c;由于文件涉密&#xff0c;不能展示&#xff0c;简单描述一下&#xff1a; 比如原pff中 姓名&#xff1a;张三 读取结果中&#xff1a;空白&#xff1a;张三 即&#xff1a;原文件说是银行出具的打款证明&#xff0c;银行内部设置了文件权限&a…

专业制作外贸网站夫唯seo

在数字化日益普及的今天&#xff0c;软件安全问题愈发受到人们的关注。而在这其中&#xff0c;一个常被提及但可能不为大众所熟知的名词——“代码签名证书”&#xff0c;实际上在软件安全领域扮演着举足轻重的角色。今天&#xff0c;我们就来聊聊代码签名证书对软件安全到底有…

网站建设公司好吗哪个分销平台比较好

1 markdown编辑器 Markdown是一种轻量级标记语言&#xff0c;创始人为约翰格鲁伯。 它允许人们使用易读易写的纯文本格式编写文档&#xff0c;然后转换成有效的XHTML&#xff08;或者HTML&#xff09;文档。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。 1.1 Typo…

网站开发的单价html企业网站开发

自动控制&#xff1a;PID控制器参数对控制性能的影响 PID控制器是工业控制领域中最常用的控制算法之一。PID控制器通过调节比例、积分(I)、微分(D)三个参数&#xff0c;使系统达到预期的控制效果。本文将详细讨论PID控制器的三个参数对控制性能的影响&#xff0c;并给出一些实…

建网站赚钱设计网站页面要注意什么

##java面试题大全 详细面试题-持续更新中-点击跳转 点赞、收藏、加关注 java基础面试题 ##java面试题大全1、什么是 Redis2、Redis 的数据结构类型3、Redis 为什么快4、什么是跳跃表5、什么是 I/O 多路复用6、什么是缓存击穿、缓存穿透、缓存雪崩7、什么是布隆过滤器8、热…

濮阳微信网站开发仿网站工具php

前言多图, 不想在源代码写注释, 不想贴代码块, 看的不清楚版本4.21混4.22, 区别不大文章属于旧有文章搬运, 之前在csdn上面2019.10.27修改一版物体位置信息同步, 或者说物体的移动同步, 是一个很大的坑, 从个人目前魔改UE4位置同步后, 感觉至少要考虑以下几点位置信息的数据结构…

河南建设工程质量监督局网站网站建设怎么找客源?

一.I/O多路复用 I/O多路复用是一种用于提高系统性能的 I/O 处理机制。 它允许一个进程&#xff08;或线程&#xff09;同时监视多个文件描述符&#xff08;可以是套接字、管道、终端设备等&#xff09;&#xff0c;等待这些文件描述符中出现读、写或异常状态。一旦有满足条件的…

做网站一屏的尺寸是服务器代理加盟

题目描述 洛洛有一份私人歌单&#xff0c;歌单里面塞满了他喜欢的歌曲&#xff0c;像夏恋、雨道、彩月、幻昼……整整有好几百首。洛洛每天都要把他的歌单听一遍&#xff0c;以致于他都能知道在什么时候放的是什么歌。 洛洛在向你推荐了他的歌单之后&#xff0c;决定考考你&am…

百度 网站改版了工程建设项目货物招标投标办法

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目:求 0—7 所能组成的奇数个数…

湖北网站seo深圳app定制开发外包公司

目录 1 memset 函数 2 bzero函数 在编程中&#xff0c;经常需要将某一块内存中的数据全部设置为指定的值&#xff0c;譬如在定义数组、结构体这种类型变量时&#xff0c;通常需要对其进行初始化操作&#xff0c;而初始化操作一般都是将其占用的内存空间全部填充为 0。 1 me…

网站地址栏图标文字搜索微信公众号平台

打开微信扫一扫&#xff0c;关注微信公众号【数据与算法联盟】 转载请注明出处&#xff1a;http://blog.csdn.net/gamer_gyt 博主微博&#xff1a;http://weibo.com/234654758 Github&#xff1a;https://github.com/thinkgamer前言 由于业务关系&#xff0c;最近一段时间一直在…

十八个免费的舆情网站做网站工具 不懂代码

在ABP vNext上的第一个公告之后,我们对代码库进行了很多改进(GitHub存储库上的1100多次提交).我们已经创建了功能,示例,文档等等.在这篇文章中,我想告诉你一些新闻和项目的状态.ABP微服务演示解决方案ABP框架的主要目标之一是提供创建微服务解决方案的便利基础设施.我们一直在努…

利用百度云做网站珠海网站建设 金蝶

前言&#xff1a;哈喽小伙伴们&#xff0c;经过前边的学习我们已经掌握了Linux的基本指令和权限&#xff0c;相信大家学完这些之后都会对Linux有一个更加深入的认识&#xff0c;但是Linux的学习可以说是从现在才刚刚开始。 这篇文章&#xff0c;我们将讲解若干个Linux的开发工…

一般网站的前台功能模块领导交给你一个网站你该怎么做

摘要解读 我们提出了一种能够以全双工方式运行的生成性对话系统&#xff0c;实现了无缝互动。该系统基于一个精心调整的大型语言模型&#xff08;LLM&#xff09;&#xff0c;使其能够感知模块、运动功能模块以及一个具有两种状态&#xff08;称为神经有限状态机&#xff0c;n…

网站数据分析报告软文营销为什么要讲故事

&#x1f308;个人主页: Aileen_0v0&#x1f525;系列专栏: 一见倾心,再见倾城 --- 计算机网络~&#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 计算机网络分层结构 OSI参考模型 OSI模型起源 失败原因: OSI模型组成 协议的作用 &#x1f4dd;全文…

怎么做网站呢成都网站建设开发公

代码随想录算法训练营第五十三天| 1143.最长公共子序列、1035.不相交的线、53.最大子序和动态规划 题目 1143.最长公共子序列 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符…