Я думаю, это зависит от того, сколько полей вам нужно. Насколько мне известно, профили - это по существу длинная строка, которая разбивается при заданных размерах полей, что означает, что они не очень хорошо масштабируются, если у вас много полей и пользователей.
С другой стороны, они встроены, так что это простой и стандартизированный способ, который означает, что нет большой кривой обучения, и вы можете использовать ее в будущих приложениях, не прибегая к настройке новой структуры таблицы. .
Свертывание вашей собственной вещи позволяет вам поместить ее в должным образом нормализованную базу данных, что резко повышает производительность, но вы должны написать почти весь код управления профилями самостоятельно.
Редактировать: Кроме того, профили не кэшируются, поэтому каждый доступ к профилю сначала идет в базу данных (затем он кэшируется для этого запроса, но следующий запрос снова получает его из базы данных)
Если вы думаете о написании своей собственной вещи, возможно, пользовательский провайдер профилей дает вам лучшее из обоих миров - бесшовную интеграцию, но все же пользовательские вещи, которые вы хотите сделать.