XNA 게임을 만들고 있는데 일부 루프를 최적화하는 방법이 있는지 궁금합니다. 예를 들어 :XNA 최적화 - 루프 풀기?
나는() 난 그냥이 할 수있는 모든 타일 업데이트()
// Update method in Map Class
public void Update()
{
for (int index = 0; index < tiles.Count; index++)
{
tiles[index].Update();
}
}
이 잘 작동 전화를하지만지도 업데이트에 타일의 컬렉션을 포함하는지도 클래스를, 그래서 각 입자 검사를 ParticleManager 모든 입자에 대한 루프
// Update method in ParticleManager class
public void Update()
{
for (int index = 0; index < particle.Count; index++)
{
particle[index].Update();
}
}
//Update Method in Particle class
public void Update()
{
for (int index = 0; index < Map.tiles.Count; index++)
{
CheckCollitions(Map.tile[index], this);
}
}
을하고 그래서 모든 입자 (즉 입자의 컬렉션을 포함)을 ParticleManager 클래스와 관리, 입자 클래스처럼, 몇 가지 큰 인구 객체와 최악을 얻을 모든 타일에 대한 콜리 전. 계산의 는 20 개 입자 (100 개) 타일을 가지고한다면, 그것은 할 것 많은 :
나는 그것이 작동하는지 모르겠어요, 언 롤링 루프와 같은 일부 최적화 생각하지만 이유입니다20 loops cycles * 100 loops cycles
(I
- 그것은 수는 루프 언 롤링를 사용하는 루프를 최적화 : 정의되지 않은 길이 루프 (컴파일 시간에 그 루프 길이)
는 정리해 모르는 컴파일러의 원인으로) 생각하지 않는다?
- 다른 유형의 최적화에 대해 조언을 해줄 수 있습니까?
감사
모든
쿼드 트리의 혜택을 받으시겠습니까? 이러한 모든 충돌 검사는 일종의 필터로 피할 수 있습니다. – Magus
구글 스페이스 분할 및 Magus 언급 쿼드 트리 – dferraro