What is better for performance: Many entity types with one bundle or one entity type with many bundles I am using the ECK module to build custom entities.
When using custom entities, the decision must always be made: shall I create a number of entity types or shall I create one entity type with a number of bundles.

From a usability perspective, the latter is obvious since, just as the node system, all entity types can easily be connected in views. It gets harder when different entity types must be used in views.

Apart from that, I assume that there must be a benefit from using multiple entity types. It has something to do with memory that drupal carries around, but it is not clear to me what exactly makes a difference.

I am aware of the benefit of using entity properties instead of fields. However, most of my entities use fields that cannot be replaced by a property.

So the question is: should I in general aim for using more entity types (each of which automatically create one bundle) or should I not worry about performance impact and create all bundles under one (generic) entity type.
This might not be the answer you want as it does not cover performance, but I think that you should choose what makes sense.

The Drupal entities system is about 'families of things'. Think of it as Classes in object oriented programming. An entity is a base class and a bundle is a sub-class that has access to the properties of its parent.

If all the types of entities have no shared fields/properties, create them as different entities. If they share properties, create them as bundles and put the shared properties in the entity. (Or use a combination of entities and bundles if it makes sense.)

But you can use other comparisons too. If you for instance have multiple types of documents (invoices, orders, notes, etc.) that all have different data, it could still make sense to make them as bundles of a 'document' entity. 

With respect to memory, I think that ECK creates all entities as a type of EckEntity and then performs some magic to label it differently (please correct me if I am wrong). So you should not need to worry about loading of different classes, it is just the ECK classes.