随笔分类 - C#
摘要:using System; using System.Diagnostics; namespace unittest { class MainClass { public static void TestTimer1() { // //System.DateTime.Now.Ticks 与 Syst
阅读全文
摘要:今天在写一个简单的打APK的工具功能时,刚开始打包脚本没有放到Editor目录下,产生了各种奇怪的问题,包括Assembly不可写,磁盘究竟是否满等。 以及AssetBundleBuild及各种其它类不存在等,放入Editor下后一切OK,脚本如下 : using System.Collection
阅读全文
摘要:public class Aclass { //1,readonly,杜绝外部销毁:Aclass.get = null //在大型项目中,单例销毁与重生很容易造成【同一单例不同实例】,从而引起各种诡异的BUG //究其原因还是开发者偷懒,想通过销毁单例确保【销毁单例内的所有引用】,害怕不销毁单例就清
阅读全文
摘要:https://docs.microsoft.com/zh-cn/dotnet/standard/net-standard
阅读全文
摘要:vssettings文件:VS2019Exported-2020-02-25.7z ,VS2019Exported-2020-02-25.7z
阅读全文
摘要:var eDefault = frameDataViewType.GetNestedType("ViewModes").GetField("Default").GetValue(null);//取类中枚举的值 if(eDefault == null) { Debug.LogError("eDefau
阅读全文
摘要:问题来源:unity profiler 只能看,不能导出数据报表,想实现此功能,怎么办? 由于它是用C#写的,因此,反射大法。 一,使用什么工具,反编译它的代码到C#,经实践,ILSPY即可。 二,想实现一个功能:在CPU usage分析模式下,当在搜索框中输入搜索字符串时,有一个事件:search
阅读全文
摘要:具体理论参考官方解析: Implementing a Dispose method
阅读全文
摘要:如果,它没有像 var lst = new List<int>(32) 这样可以直接预留容量的操作,原因未知。 但可以通过如下操作进行预留: //给hashset预留容量,防止动态扩容,由于hashset不能像其它容器那样直接预留容量,只能通过如下方式操作 for(int i=0; i< 32; +
阅读全文
摘要:最近项目测试发现,运行unity后不退出运行模式,玩了一局后点击 “再来一局”,反复十几局后unity崩掉。 经观察,发现在这十几局的过程中,unity占用内存不断上升,由3.2G左右上升到3.6G左右就崩掉。这似乎是内存不足引起的,但很奇怪,我有8G内存,怎么才涨了400M就崩了呢。 最终发现:这
阅读全文
摘要:1,设计的原子化,正交化2,根据现有需求设计,不做太通用的设计,敏捷开发,根据需求重构3,逻辑嵌套的展开,类似递归展开为for循环的思想。如技能系统常常需要复杂的回调时
阅读全文
摘要:平时我们用U3d profiler的Gc alloc 选项是为了查找一些动态的内存分配,多数是为了防止动态分配造成不定时的垃圾回收,形成CPU波峰。 GC ALLOC 选项还可以用来查内存泄漏。
阅读全文
摘要:public class WardEntity : PositiveEntity {
阅读全文
摘要:如题,不再像以前那样由系统决定什么时候进行GC,现在可以通过设置,决定自己手动回收还是使用传统的系统决定方式。 传统方式不可控,就算是手动调用了GC.COLLECT,系统也不一定会立即执行。
阅读全文
摘要:public class testGC : MonoBehaviour { class XDict { public void TryGetValue(K key, V value) { if(key == null) //产生 GC-ALLOC,因为实参为int,而 null是引用类型,发生了装箱操作 ...
阅读全文
摘要:有时候用deep profiling查看GC时会发现:一个父函数有GC,展开子层级看到一个很奇怪的 CX::ctor,表示CX进行了构造,然后打开父函数代码却完全看不到有new CX的地方,这个时候可能就是由于父函数中调用了CX中的静态变量,导致了此类型的构造。
阅读全文
摘要:数组原来的内容不变,后面添加新的空间。 内部操作应该是:重新分配了一块空间,然后将旧的内容拷过去
阅读全文
摘要:[StructLayout(LayoutKind.Explicit, Size = 8)] public struct TypeTransform { [FieldOffset(0)] public float f; [FieldOffset(0)] ...
阅读全文
摘要:仅是简单的给一个ugui.text组件不断的赋值字符串,就会带来很高的CPU消耗,约0.5MS左右。 这个过程主要是消耗在字体的MESH顶点重建。 在游戏中变化的字体一般不多,聊天面板虽然变化,刷新率不高(MOBA游戏) 然后就是金钱变化的显示,网络延迟的显示,FPS的显示。 优化想法:对于字符串长
阅读全文

浙公网安备 33010602011771号