Profile pictures are rendered by all Nostr apps in large quantities, so it is very important to optimize them to get good performances and respect users' bandwidth.
With modern phones and camera is not unusual to capture images larger than 2MB, and these images are often immediately uploaded (of course) without any optimization.
These are the statistics for profile image sizes based on a random selection of my following and following of following, with a sample size of 1,000 profiles:
| Size Range | Count |
----------------------------
| < 100KB | 421 |
| < 500KB | 315 |
| < 1MB | 76 |
| < 2MB | 63 |
| < 3MB | 40 |
| < 4MB | 30 |
| < 5MB | 10 |
| < 10MB | 10 |
| > 10MB | 9 |
----------------------------
| Timeouts | 2 |
| Broken Links | 24 |
| Total | 1000 |
55,3% (> 100KB) of the profile pictures can optimized!
I suggest that all developers resize the images client-side before uploading, inscribing them in a 1000x1000px square (or 800x800, which is more than enough even for a full-screen preview) and save them with 70% jpeg quality.
This setting should bring images below 100KB and make users happy.