Nie wiemy, co znaczy "dobry" i "zły".
Nie wiemy, czy używasz ich w krytycznym kodzie wydajności, który może być wąskim gardłem dla twojej aplikacji.
Tylko Ty znasz dokładnie ścieżki, które Twój kod będzie używał podczas używania Object.GetType
i Assembly.GetTypes
.
W związku z tym, tylko Ty możesz profilować dokładnie, jak istotne będzie wykorzystanie tych metod w działaniu aplikacji i jak korzystne będzie zwiększenie wydajności poprzez buforowanie.
mogę ci to powiedzieć: Nigdy nie miałem Type.GetType
i Assembly.GetTypes
być wąskim gardłem w mojej aplikacji, a ja nie buforują wyniki (Mam jednak potrzebne, aby buforować MemberInfo.GetCustomAttributes
ale doszedłem tylko do tego wniosku po profiler powiedział mi, że było to wąskie gardło w mojej aplikacji i że buforowanie znacznie poprawiłoby wydajność).
Odpowiadając na swojej EDIT:
To znaczy, są te API zajmują dużo czasu, które mogą powodować pewne pogorszenie wydajności lub są te API dobrze zaprojektowany, aby ignorować problemy z wydajnością?
Jakie masz alternatywy? Jeśli potrzebujesz odniesienia do Type
dla danego obiektu lub potrzebujesz wszystkich typów w danym zestawie, zapewniam, że najlepszym wyborem są Object.GetType
i Assembly.GetTypes
. Pytanie brzmi: w jaki sposób je wykorzystujesz? Ponownie, nie wiemy, a zatem nie mogę powiedzieć, co robić. Musisz profilować swoje rzeczywiste wykorzystanie tych funkcji i dowiedzieć się, czy powodują one wąskie gardło w Twojej aplikacji, czy nie.
Co jest dobre czy złe? –