$ _ GET, очевидно, более эффективен, поскольку он ничего не вычисляет
Тем не менее, если вы не планируете вызывать это несколько тысяч раз в своем скрипте, это незначительно, поэтому используйте то, что, по вашему мнению, работает лучше.
$t = microtime(true);
for($i = 0; $i<1000; $i++) {
$x = basename($url);
}
printf("%.3f\n", microtime(true) - $t);
0,010