mirror of
https://github.com/AssetRipper/AssetRipper.git
synced 2025-12-11 20:15:29 +01:00
Improve yaml export performance
This commit is contained in:
parent
7b1c20c1f3
commit
f0c7ccb128
@ -85,8 +85,9 @@ public sealed class YamlSequenceNode : YamlNode
|
|||||||
base.Emit(emitter);
|
base.Emit(emitter);
|
||||||
|
|
||||||
StartChildren(emitter);
|
StartChildren(emitter);
|
||||||
foreach (YamlNode child in Children)
|
for (int i = 0; i < Children.Count; i++)
|
||||||
{
|
{
|
||||||
|
YamlNode child = Children[i];
|
||||||
StartChild(emitter, child);
|
StartChild(emitter, child);
|
||||||
child.Emit(emitter);
|
child.Emit(emitter);
|
||||||
EndChild(emitter, child);
|
EndChild(emitter, child);
|
||||||
|
|||||||
@ -9,9 +9,9 @@ public abstract partial class YamlScalarNode
|
|||||||
private protected override void EmitCore(Emitter emitter)
|
private protected override void EmitCore(Emitter emitter)
|
||||||
{
|
{
|
||||||
Span<char> buffer = stackalloc char[ReverseHexString.GetHexStringLength<byte>()];
|
Span<char> buffer = stackalloc char[ReverseHexString.GetHexStringLength<byte>()];
|
||||||
foreach (bool value in list)
|
for (int i = 0; i < list.Count; i++)
|
||||||
{
|
{
|
||||||
byte b = value ? (byte)1 : (byte)0;
|
byte b = list[i] ? (byte)1 : (byte)0;
|
||||||
ReverseHexString.WriteReverseHexString(b, buffer);
|
ReverseHexString.WriteReverseHexString(b, buffer);
|
||||||
emitter.Write(buffer);
|
emitter.Write(buffer);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,9 +9,9 @@ public abstract partial class YamlScalarNode
|
|||||||
private protected override void EmitCore(Emitter emitter)
|
private protected override void EmitCore(Emitter emitter)
|
||||||
{
|
{
|
||||||
Span<char> buffer = stackalloc char[ReverseHexString.GetHexStringLength<ushort>()];
|
Span<char> buffer = stackalloc char[ReverseHexString.GetHexStringLength<ushort>()];
|
||||||
foreach (char value in list)
|
for (int i = 0; i < list.Count; i++)
|
||||||
{
|
{
|
||||||
ReverseHexString.WriteReverseHexString((ushort)value, buffer);
|
ReverseHexString.WriteReverseHexString((ushort)list[i], buffer);
|
||||||
emitter.Write(buffer);
|
emitter.Write(buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,9 +10,9 @@ public abstract partial class YamlScalarNode
|
|||||||
private protected override void EmitCore(Emitter emitter)
|
private protected override void EmitCore(Emitter emitter)
|
||||||
{
|
{
|
||||||
Span<char> buffer = stackalloc char[ReverseHexString.GetHexStringLength<T>()];
|
Span<char> buffer = stackalloc char[ReverseHexString.GetHexStringLength<T>()];
|
||||||
foreach (T value in list)
|
for (int i = 0; i < list.Count; i++)
|
||||||
{
|
{
|
||||||
ReverseHexString.WriteReverseHexString(value, buffer);
|
ReverseHexString.WriteReverseHexString(list[i], buffer);
|
||||||
emitter.Write(buffer);
|
emitter.Write(buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -23,9 +23,9 @@ public abstract partial class YamlScalarNode
|
|||||||
{
|
{
|
||||||
StringWriter sb = new();
|
StringWriter sb = new();
|
||||||
Span<char> buffer = stackalloc char[ReverseHexString.GetHexStringLength<T>()];
|
Span<char> buffer = stackalloc char[ReverseHexString.GetHexStringLength<T>()];
|
||||||
foreach (T value in list)
|
for (int i = 0; i < list.Count; i++)
|
||||||
{
|
{
|
||||||
ReverseHexString.WriteReverseHexString(value, buffer);
|
ReverseHexString.WriteReverseHexString(list[i], buffer);
|
||||||
sb.Write(buffer);
|
sb.Write(buffer);
|
||||||
}
|
}
|
||||||
return sb.ToString();
|
return sb.ToString();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user