Interesting discussion. I played around with some code and got 49 seconds for a global column rename of 65394 columns. Lenovo T420 PC, Windows 7 64-bit, JMP 64-bit, 4 GB RAM.
dt = open("$sample_data\Probe.jmp");
// Extend the number of columns to 65000
// WARNING takes ~10 minutes!
for (i = 1, i <= 65000, i++,
dt << new column("XYZ" || char(i), Numeric, Continuous);
);
start_dt = today();
col_name_list = dt << get column names(string);
nc = ncols(dt) ;
For (i = 1, i <= nc, i++,
one_col_name = col_name_list[i];
// Only rename the column if it contains the string in question
if (contains(one_col_name, "X"),
column(i) << set name(substitute(one_col_name, "X", "D"));
);
);
end_dt = today();
print(char(end_dt - start_dt) || " seconds for " || char(nc) || " columns");