Skip to content

Commit 2301028

Browse files
committed
perf(dart): recover native int64 benchmark throughput
1 parent ee0167f commit 2301028

15 files changed

Lines changed: 990 additions & 42 deletions

dart/packages/fory/lib/src/codegen/fory_generator.dart

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1316,10 +1316,19 @@ GeneratedFieldType(
13161316
case TypeIds.varInt32:
13171317
return '$cursorExpression.writeVarInt32(${_directGeneratedScalarExpression(field, valueExpression)})';
13181318
case TypeIds.int64:
1319+
if (field.type.isDartCoreInt) {
1320+
return '$cursorExpression.writeInt64FromInt($valueExpression)';
1321+
}
13191322
return '$cursorExpression.writeInt64(${_directGeneratedScalarExpression(field, valueExpression)})';
13201323
case TypeIds.varInt64:
1324+
if (field.type.isDartCoreInt) {
1325+
return '$cursorExpression.writeVarInt64FromInt($valueExpression)';
1326+
}
13211327
return '$cursorExpression.writeVarInt64(${_directGeneratedScalarExpression(field, valueExpression)})';
13221328
case TypeIds.taggedInt64:
1329+
if (field.type.isDartCoreInt) {
1330+
return '$cursorExpression.writeTaggedInt64FromInt($valueExpression)';
1331+
}
13231332
return '$cursorExpression.writeTaggedInt64(${_directGeneratedScalarExpression(field, valueExpression)})';
13241333
case TypeIds.uint8:
13251334
return '$cursorExpression.writeUint8(${_directGeneratedScalarExpression(field, valueExpression)})';
@@ -1330,10 +1339,19 @@ GeneratedFieldType(
13301339
case TypeIds.varUint32:
13311340
return '$cursorExpression.writeVarUint32(${_directGeneratedScalarExpression(field, valueExpression)})';
13321341
case TypeIds.uint64:
1342+
if (field.type.isDartCoreInt) {
1343+
return '$cursorExpression.writeUint64FromInt($valueExpression)';
1344+
}
13331345
return '$cursorExpression.writeUint64(${_directGeneratedScalarExpression(field, valueExpression)})';
13341346
case TypeIds.varUint64:
1347+
if (field.type.isDartCoreInt) {
1348+
return '$cursorExpression.writeVarUint64FromInt($valueExpression)';
1349+
}
13351350
return '$cursorExpression.writeVarUint64(${_directGeneratedScalarExpression(field, valueExpression)})';
13361351
case TypeIds.taggedUint64:
1352+
if (field.type.isDartCoreInt) {
1353+
return '$cursorExpression.writeTaggedUint64FromInt($valueExpression)';
1354+
}
13371355
return '$cursorExpression.writeTaggedUint64(${_directGeneratedScalarExpression(field, valueExpression)})';
13381356
case TypeIds.float16:
13391357
return '$cursorExpression.writeFloat16($valueExpression)';
@@ -1500,15 +1518,15 @@ GeneratedFieldType(
15001518
: 'Int32($cursorExpression.readVarInt32())';
15011519
case TypeIds.int64:
15021520
return field.type.isDartCoreInt
1503-
? '$cursorExpression.readInt64().toInt()'
1521+
? '$cursorExpression.readInt64AsInt()'
15041522
: '$cursorExpression.readInt64()';
15051523
case TypeIds.varInt64:
15061524
return field.type.isDartCoreInt
1507-
? '$cursorExpression.readVarInt64().toInt()'
1525+
? '$cursorExpression.readVarInt64AsInt()'
15081526
: '$cursorExpression.readVarInt64()';
15091527
case TypeIds.taggedInt64:
15101528
return field.type.isDartCoreInt
1511-
? '$cursorExpression.readTaggedInt64().toInt()'
1529+
? '$cursorExpression.readTaggedInt64AsInt()'
15121530
: '$cursorExpression.readTaggedInt64()';
15131531
case TypeIds.uint8:
15141532
return field.type.isDartCoreInt
@@ -1528,15 +1546,15 @@ GeneratedFieldType(
15281546
: 'Uint32($cursorExpression.readVarUint32())';
15291547
case TypeIds.uint64:
15301548
return field.type.isDartCoreInt
1531-
? '$cursorExpression.readUint64().toInt()'
1549+
? '$cursorExpression.readUint64AsInt()'
15321550
: '$cursorExpression.readUint64()';
15331551
case TypeIds.varUint64:
15341552
return field.type.isDartCoreInt
1535-
? '$cursorExpression.readVarUint64().toInt()'
1553+
? '$cursorExpression.readVarUint64AsInt()'
15361554
: '$cursorExpression.readVarUint64()';
15371555
case TypeIds.taggedUint64:
15381556
return field.type.isDartCoreInt
1539-
? '$cursorExpression.readTaggedUint64().toInt()'
1557+
? '$cursorExpression.readTaggedUint64AsInt()'
15401558
: '$cursorExpression.readTaggedUint64()';
15411559
case TypeIds.float16:
15421560
return '$cursorExpression.readFloat16()';

0 commit comments

Comments
 (0)