In principle 63 variable is not a problem.
Lets define them
var = Table[ToExpression["x" <> ToString[i]], {i, 64}];
and a Quadratic function
Q = var.var;
This defines the function
fun =
Compile[Sequence@Map[{{#, _Real}} &, var] // Evaluate, Q,
CompilationOptions -> {"InlineExternalDefinitions" -> True}];
and the minimization proceeds as it should
NMinimize[fun @@ var, var]
(*
==> {0., {x1 -> 0., x2 -> 0., x3 -> 0., x4 -> 0., x5 -> 0.,
x6 -> 0., x7 -> 0., x8 -> 0., x9 -> 0., x10 -> 0., x11 -> 0.,
x12 -> 0., x13 -> 0., x14 -> 0., x15 -> 0., x16 -> 0., x17 -> 0.,
x18 -> 0., x19 -> 0., x20 -> 0., x21 -> 0., x22 -> 0., x23 -> 0.,
x24 -> 0., x25 -> 0., x26 -> 0., x27 -> 0., x28 -> 0., x29 -> 0.,
x30 -> 0., x31 -> 0., x32 -> 0., x33 -> 0., x34 -> 0., x35 -> 0.,
x36 -> 0., x37 -> 0., x38 -> 0., x39 -> 0., x40 -> 0., x41 -> 0.,
x42 -> 0., x43 -> 0., x44 -> 0., x45 -> 0., x46 -> 0., x47 -> 0.,
x48 -> 0., x49 -> 0., x50 -> 0., x51 -> 0., x52 -> 0., x53 -> 0.,
x54 -> 0., x55 -> 0., x56 -> 0., x57 -> 0., x58 -> 0., x59 -> 0.,
x60 -> 0., x61 -> 0., x62 -> 0., x63 -> 0., x64 -> 0.}}
*)
It works more generally for another objective function
Q = (var - Table[i, {i, 64}]) //(#.# + (#.#)^2) &;
fun = Compile[Sequence@Map[{{#, _Real}} &, var] // Evaluate, Q,
CompilationOptions -> {"InlineExternalDefinitions" -> True}];
NMinimize[fun @@ var, var];//Timing
(* ===> 0.78 sec. *)