---
title: "Debug vs Release"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/110776-debug-vs-release"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "Alpha II"
published: "2004-09-04T11:04:54.000Z"
updated: "2004-09-04T20:45:07.000Z"
replies: 6
views: 468
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/110776-debug-vs-release"
---

# Debug vs Release

## #1 — Alpha II, 2004-09-04T11:04Z

Vad är skillnaden mellan debug och release när man kompilerar?

Jag får enorma prestandaskillnader mellan debug och release. I debug får jag kanske 8-10 fps medans jag i release fpr 250 fps. Det är helt omöjligt att testa programmet i Debug mode med den prestandan. Med tanke på den enorma skillnaden så antar jag att nåt kompileras lite konstigt i debug mode.

Den del av koden som utgör hela skillnaden är denna:

```
void CModel::Render()
{
//	glColor3ub(120,120,120);
	for (u_int32_t n=0; n < objects.size(); n++)
	{
		glPushMatrix();
		if (objects[n].tX != 0 || objects[n].tY != 0 || objects[n].tZ != 0)
		{
			glTranslatef(objects[n].tX, objects[n].tY, objects[n].tZ);
		}

		if (objects[n].rA != 0 || objects[n].rX != 0 || objects[n].rY != 0 || objects[n].rZ != 0)
		{
			glRotatef(objects[n].rA, objects[n].rX, objects[n].rY, objects[n].rZ);
		}

		if (objects[n].sX != 0 || objects[n].sY != 0 || objects[n].sZ != 0)
		{
			glScalef(objects[n].sX, objects[n].sY, objects[n].sZ);
		}

		for (u_int32_t p=0; p < objects[n].faces.size(); p++)
		{
			
			//CTextureManager::GetInstance()->BindTexture(objects[n].tris[p].textureIndex);
			glBegin(GL_TRIANGLES);
			
				glNormal3f(objects[n].faces[p].points[0].normal.x,
					  	   objects[n].faces[p].points[0].normal.y,
						   objects[n].faces[p].points[0].normal.z);
				glTexCoord2f(objects[n].faces[p].points[0].u,
						     objects[n].faces[p].points[0].v);
							 
				glVertex3f(objects[n].faces[p].points[0].x, 
						   objects[n].faces[p].points[0].y,
						   objects[n].faces[p].points[0].z);

				
				glNormal3f(objects[n].faces[p].points[0].normal.x,
						   objects[n].faces[p].points[0].normal.y,
						   objects[n].faces[p].points[0].normal.z);
				glTexCoord2f(objects[n].faces[p].points[1].u,
						     objects[n].faces[p].points[1].v);
							 
				glVertex3f(objects[n].faces[p].points[1].x, 
						   objects[n].faces[p].points[1].y,
						   objects[n].faces[p].points[1].z);

				
				glNormal3f(objects[n].faces[p].points[0].normal.x,
						   objects[n].faces[p].points[0].normal.y,
						   objects[n].faces[p].points[0].normal.z);
				glTexCoord2f(objects[n].faces[p].points[2].u,
						     objects[n].faces[p].points[2].v);
							 
				glVertex3f(objects[n].faces[p].points[2].x, 
						   objects[n].faces[p].points[2].y,
						   objects[n].faces[p].points[2].z);
			glEnd();
			

		}
		glPopMatrix();
	}
}
```

Väldigt rena OpenGL kommandon tycker jag. Det som kanske gör skillnad är att alla arrayer här är vector klasser från STL. Kan det vara där prestandaförlusten kommer ifrån?

Bilagor:

- [debugvsrelease.rar](https://www.webforum.nu/a/4481.rar)

Permalänk: https://www.webforum.nu/p/110776

## #2 — tydal, 2004-09-04T11:08Z

Re: Debug vs Release

> **Alpha II skrev:**
>
> Vad är skillnaden mellan debug och release när man kompilerar?

Enkelt förklarat, blir det något fel när du kör programmet kan du se var i källkoden felet inträffat om du kör debug.

Debug ska du alltså bara använda när du behöver felsöka. Release är när programmet är som vanligt.

Permalänk: https://www.webforum.nu/p/1427839

## #3 — Alpha II, 2004-09-04T11:10Z

Så man skall inte använda debug när man utvecklar, utan bara när programmet krånglar? Det är inte så att man inte märker vissa fel i release eller nåt liknande?

Permalänk: https://www.webforum.nu/p/1427840

## #4 — tydal, 2004-09-04T11:44Z

> **Alpha II skrev:**
>
> Det är inte så att man inte märker vissa fel i release eller nåt liknande?

Nja, du får varningar i debug som inte kommer i release.

Permalänk: https://www.webforum.nu/p/1427855

## #5 — Alpha II, 2004-09-04T13:42Z

Med lite minskad användning av \[\] operatorn för vektorerna har jag lyckats öka min fps från 0.1 till 8, men fortfarande långt ifån de 50 jag får i release-mode.

Hur kommer det sig att \[\] operatorn fär vector är så slö i debug?

Vad kan jag göra mer för att öka hastigheten?
Just denna funktion som jag postade i första inlägget är otroligt långsam. Bara för att den ritade upp några boxar så sjönk fpsen väldigt väldigt mycket.

Permalänk: https://www.webforum.nu/p/1427892

## #6 — spango, 2004-09-04T14:23Z

> **Alpha II skrev:**
>
> Hur kommer det sig att \[\] operatorn fär vector är så slö i debug?

En (okvalificerad) gissning är att den i debug gör bounds checking, men inte i release.

Permalänk: https://www.webforum.nu/p/1427903

## #7 — PeW, 2004-09-04T20:45Z

Om det är så, så torde det underlätta att istället köra med en egendefinierad vector.

Permalänk: https://www.webforum.nu/p/1428132

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/110776-debug-vs-release
