php – ¿Cómo optimizar este código para que cargue mas rápido?


Recibo una tabla que mi programa pinta por html table, entonces me piden que la ordene por las diferentes columnas de modo ascendente y descendente, lo pense y lo puse por onclick en el titulo de cada columna, un click, ordena ascendente el segundo click de forma descendente.

pero mi problema es que la tabla tiene muchisimos registros/tuplas, y tarda como 5′ en ejecutarse el sort

acá mi código de ordenacion:

function sortTable(n) {
  var table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0;
  table = document.getElementById("listado-empresas");
  switching = true;
  dir = "asc"; 
  while (switching) {
    switching = false;
    rows = table.rows;
    for (i = 1; i < (rows.length - 1); i++) {
       shouldSwitch = false;
       x = rows(i).getElementsByTagName("td")(n);
      y = rows(i + 1).getElementsByTagName("td")(n);
       if (dir == "asc") {
        if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) {
           shouldSwitch= true;
          break;
        }
      } else if (dir == "desc") {
        if (x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase()) {
          shouldSwitch = true;
          break;
        }
      }
    }
    if (shouldSwitch) {
      rows(i).parentNode.insertBefore(rows(i + 1), rows(i));
      switching = true;
      switchcount ++;      
    } else {
      if (switchcount == 0 && dir == "asc") {
        dir = "desc";
        switching = true;
      }
    }
  }
}