Một trò chơi XNA tôi đang thực hiện đang chạy chậm trên thiết bị WP7 của mình. Tuy nhiên, khi tôi khởi động nó trong Phân tích Hiệu suất Windows Phone để tìm ra nút cổ chai, trò chơi đã chạy trơn tru trên cùng một thiết bị.
Tôi đã tìm ra vấn đề một lát sau, và đó là một chức năng kiểm tra kề. Tôi đã tối ưu hóa chức năng và trò chơi hoạt động tốt.
Tại sao trò chơi tăng tốc một cách kỳ diệu trong chế độ Phân tích hoàn hảo? Bất kỳ lời giải thích có thể?
Đây là mã chạy nhanh hơn ở chế độ Phân tích hoàn hảo, nhưng ngược lại thì chậm. Nó là một chức năng gây sát thương trong một trò chơi phòng thủ tháp.
foreach (Target myTarget in _targets)
{
for (int x = -1; x <= 1; x++)
{
for (int y = -1; y <= 1; y++)
{
if (x == 0 && y == 0) continue;
try
{
Tile adjacent = _tiles[(int)myTarget.CurrentTile.X + x, (int)myTarget.CurrentTile.Y + y];
if (adjacent.Tower != null)
{
DealDamage(myTarget, adjacent.Tower);
}
}
catch
{
}
}
}
}
Tôi đã tối ưu hóa nó sau bằng cách kiểm tra thiệt hại cho từng tòa tháp thay vì từng mục tiêu.