コード例 #1
0
int main(int argc, char *argv[]) {
	testMemcpy("sceDmacMemcpy", &sceDmacMemcpy);
	testMemcpy("sceDmacTryMemcpy", &sceDmacTryMemcpy);

	checkpointNext("Size of copy:");
	// Approximate speed: 225 MB/s.
	checkpoint("  sceDmacMemcpy 1MB: %08x", sceDmacMemcpy((void*)0x04000000, (void*)0x04100000, 0x00100000));
	checkpoint("  sceDmacTryMemcpy 1MB: %08x", sceDmacTryMemcpy((void*)0x04000000, (void*)0x04100000, 0x00100000));
	checkpoint("  sceDmacMemcpy 1KB: %08x", sceDmacMemcpy((void*)0x04000000, (void*)0x04100000, 0x00000400));
	checkpoint("  sceDmacMemcpy 512B: %08x", sceDmacMemcpy((void*)0x04000000, (void*)0x04100000, 0x00000200));
	// This is suspiciously consistent, but maybe it's just chance.
	checkpoint("  sceDmacMemcpy 272B: %08x", sceDmacMemcpy((void*)0x04000000, (void*)0x04100000, 0x00000110));
	checkpoint("  sceDmacMemcpy 271B: %08x", sceDmacMemcpy((void*)0x04000000, (void*)0x04100000, 0x0000010F));
	checkpoint("  sceDmacMemcpy 257B: %08x", sceDmacMemcpy((void*)0x04000000, (void*)0x04100000, 0x00000101));
	checkpoint("  sceDmacMemcpy 256B: %08x", sceDmacMemcpy((void*)0x04000000, (void*)0x04100000, 0x00000100));
	
	checkpointNext("Concurrent copies:");
	SceUID copyThread = sceKernelCreateThread("dmac", &dmacCopyFunc, 0x10, 0x1000, 0, NULL);
	sceKernelStartThread(copyThread, 0, NULL);
	checkpoint("  sceDmacTryMemcpy 1MB: %08x", sceDmacTryMemcpy((void*)0x04000000, (void*)0x04100000, 0x00100000));
	checkpoint("  sceDmacMemcpy 1MB: %08x", sceDmacMemcpy((void*)0x04000000, (void*)0x04100000, 0x00100000));

	checkpointNext("memalign:");
	void *ptr;
	ptr = memalign(128 , 2048); checkpoint("%d", ((int)ptr) % 128);
	ptr = memalign(1024, 2048); checkpoint("%d", ((int)ptr) % 1024);
	//ptr = memalign(100 , 2048); checkpoint("%d", ((int)ptr) % 100);

	//checkpoint("%i bytes available", oslGetRamStatus().maxAvailable);

	return 0;
}
コード例 #2
0
ファイル: main.c プロジェクト: groleo/tcbuild
int main()
{
#define TEST_SZ (1024)
	int i;

	for (i=TEST_SZ;i>0;--i)
	{
//		testMemmoveAlign(i);
//		testBcopyAlign(i);
		testMemcpy(i);
	}
}