Czy System.currentTimeMillis () jest najlepszą miarą wydajności czasu w Javie?

Czy System.currentTimeMillis () jest najlepszą miarą wydajności czasu w Javie? Czy są jakieś problemy z użyciem tego do porównania czasu przed podjęciem działania do czasu po podjęciu działania? Czy istnieje lepsza alternatywa?