C# 无GA/GC的第二个字符串的千分之一的最佳获取
作为计时器,如何在不分配任何垃圾的情况下读取千分之一秒的读数 我知道可以为0.999构建一个从000到999的字符串数组,并从C# 无GA/GC的第二个字符串的千分之一的最佳获取,c#,unity3d,math,garbage,C#,Unity3d,Math,Garbage,作为计时器,如何在不分配任何垃圾的情况下读取千分之一秒的读数 我知道可以为0.999构建一个从000到999的字符串数组,并从第千分之一数组[nnn] 但是,我如何从每个时间报告、每个帧中划分它,而不在划分秒的过程中创建垃圾 当前时间是14点397分 我需要在不产生任何垃圾的情况下,将397从14秒中分离出来 但是数学函数似乎每一帧都会产生一些垃圾。我想不出什么是最理想的。甚至工作。我认为这不可能不产生任何垃圾。你应该尽量少花钱 您可以使用它将其向下舍入到最后一个int使其“忘记”任何小数,然后
第千分之一数组[nnn]
但是,我如何从每个时间报告、每个帧中划分它,而不在划分秒的过程中创建垃圾
当前时间是14点397分
我需要在不产生任何垃圾的情况下,将397从14秒中分离出来
但是数学函数似乎每一帧都会产生一些垃圾。我想不出什么是最理想的。甚至工作。我认为这不可能不产生任何垃圾。你应该尽量少花钱 您可以使用它将其向下舍入到最后一个
int
使其“忘记”任何小数,然后从原始值中减去它,如
float time = 14.6978f;
float fullSeconds = Mathf.Floor(time);
// = 14 (rounded down)
int thousandthOfSeconds = Mathf.RoundToInt((time - fullSeconds) * 1000);
// = 698 (rounded up)
这至少比处理任何字符串都要便宜。清理非托管资源有不同的方法: 实现IDisposable接口和处理方法 “using”块还用于清理非托管资源 有两种方法可以实现Dispose方法: 使用“SafeHandle”类实现Dispose(它是内置的抽象类,已实现“CriticalFinalizerObject”和“IDisposable”接口) 要重写的Finalize方法(此方法是特定对象在销毁之前使用的干净非托管资源) 让我们看一下下面的代码以处置非托管资源:
使用“SafeHandle”类实现Dispose:关于数字的极好观点几乎总是比千分之一秒多得多的信息。我完全忘记了这一点,只是更仔细地看了看Mathf,他们有两件东西是一样的:Ceil和CeilPoint。难怪有人在制造垃圾,你什么意思
Ceil
是Floor
的反面,而CailToInt
是FloorToInt
的反面(用于始终向上取整)。这不是完全相同的事情:Floor
和Ceil
仍然返回float
,而FloorToInt
和RoundToInt
还包括一个到int
的类型转换。若你们同意浮点数作为返回值,当然你们可以使用Mathf,Round
以及wait。。。我现在更糊涂了。我道歉。我几乎不知道你在暗示什么。