The real problem with DBP is it's performance, functions themselves are fairly quick for the most part; but DBP code is quite slow.
people have shown ways to improve this, but it'll never reach purebasic or even blitz3d speed; especially using pointers. That in particular is extremely slow.
try to use memblocks with the memblock function calls, think i did a performance test app a while ago (must be 3years now) that showed how slow pointers actually were. very confusing given dbp is compiled to machine code, but oh well.
found the best way around problems like this is to program a new plug-in via C++ to do the operations i want, then use that function with dbp code. this said i'm using DGDK more now, as it elimiates the need to do the back'n'forth.
hopefully Lee will take some time out after the X10 engine is complete to overhaul the compiler with what he's now learnt about low-level programming.