На большинстве машин int быстрее, чем short / char, поэтому здесь не о чем думать. Всегда используйте int, если вам не нужны 64-битные целые числа. Или, может быть, если вам действительно нужно сэкономить память, тогда могут быть полезны меньшие типы.
Между поплавком и двойным, я думаю, лучше по умолчанию на двойном, просто потому, что точность на плаву довольно плоха для любого рода численных расчетов. Только если вам действительно нужна дополнительная производительность и вам не нужна точность, используйте float.