- 博客(10)
- 收藏
- 关注
原创 C#:大量使用new运算符的结果与避免措施
对象的创建和销毁都需要一定的时间,频繁创建对象可能会导致额外的CPU开销,频繁的垃圾回收也会导致性能下降。频繁创建新的对象,会产生大量垃圾对象,需要使用垃圾清理器进行回收,频繁的垃圾清理,可能会影响程序的性能。对于需要频繁创建和销毁的对象,可以使用对象池来管理对象的重复使用,从而降低new运算符的使用频率。频繁地创建对象,会导致对象生命周期管理变得复杂,可能会导致无法正确地回收不再使用的垃圾对象。频繁地创建和销毁对象,可能会导致堆内存的碎片化。尽可能地复用已经存在的对象,而不是频繁创建新对象。
2023-08-14 11:27:05
976
原创 C#堆和栈的区别
堆 堆是按需申请、动态分配的内存空间,在程序需要内存的时候,就会提出申请,从堆中按照一定的算法找出一块可用内存,标记占用空间等信息后,就将其起始地址发送给程序。在程序结束之前,内存不会被操作系统自动删除,而是由程序来控制是否释放内存。 堆空间的读取速度较慢,但堆里面的数据可以以任意顺序存入或取出。 在C#中,堆主要存放引用类型,比如类、数组、借口、字符串。当然,如果类里面有值类型,它也跟随类被存放在堆中。栈 栈是先进后出的内存空间。
2023-08-11 17:21:28
197
1
原创 C#数组和列表的区别
数组 数组是引用类型,它的声明,只是为其引用预留空间,随后使用new运算符创建实例,将数组元素赋值为默认值。因为数组元素的地址在内存中是连续的,所以它的访问速度是非常快的,而且修改元素数值也很方便,但有利也有弊,这也导致了数组进行复杂操作时捉襟见肘,比如插入和删除中间元素,这需要对大部分元素进行位置移动。 在C#中,数组分为矩形数组和交错数组,它们都是多维的,在某些时候可以更好的管理数据。 在数组创建阶段,需要手动指明数组的长度,这就会很被动,需要我们提
2023-08-11 14:43:50
605
1
原创 《Lua程序设计》练习1.6
除了使用函数type外,如何检查一个值是否为Boolean类型?使用下列函数:> if a==true then>> print(true)>> elseif a==false then>> print(false)>> else>> print(xxx)>> end
2022-05-03 22:23:51
280
原创 game视图无法移动
当场景中存在摄像机时,game视图没有呈现摄像机的画面,而是呈现一种诡异的角度,应该检查摄像机属性中的Depth数值,该属性作用为摄像机的优先级,若主摄像机的Depth数值为-1,game视图将无法正常显示。若要解决这个问题,只需要将Depth的数值改为0即可。...
2022-03-31 23:14:18
2028
原创 Collider和Rigidbody的区别和联系
Collider,又名碰撞体,是用来检测是否有物体碰撞,勾选上Trigger之后,又是触发器,可以实现物体相撞之后触发事件,一般用于静止物体。Rigidbody,又名刚体,一般用于移动物体。当载有Rigidbody的物体撞向载有Collider的物体时,物体将无法穿过。若Collider为触发器,则会穿过。...
2022-03-31 00:22:22
1243
原创 “3ds max could not be found“
在unity中导入maya模型,如果文件中不注意掺杂了.max文件,就会报错。该报错后面还有一句话,"and not associated with the .max files"。 其实就是因为电脑中没有3ds MAX。只要将项目文件中.max文件删除即可,如果该.max文件很重要,或许下载一个3ds MAX就行了(不过用maya建模的,模型中的.max文件应该只是找模型时出错)!!!...
2022-03-23 00:36:41
5718
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人