Вы можете использовать профилировщик, чтобы увидеть, какие части кода занимают больше всего времени.
Сложнее сказать, эффективен ли ваш код в целом или нет. Попробуйте сравнить время его завершения с аналогичными приложениями. Вы должны определить, какая производительность вам нужна, и попытаться оптимизировать свой код, чтобы быть ниже вашего порога.