I have created some files that have a long string as XData on every entity in the model. When I add the file as an xref it takes forever to get the file in as an xref when there is some size to the model.
Would it be faster to use XRecord, or is there a better way that can speed the loading of these xrefs?
If the performance issues you are seeing are actually caused by the xdata (and I'm not sure that's the case), whether you can make improvements would depend on what exactly the xdata represents. For example, are there many entities that can contain identical values in their xdata (implying a 'one-to-many' relationship) ? If so, then one way might be to store the duplicated string in one location (in the Named Objects Dictionary or a dictionary attached to the BlockTableRecord that contains the entities), and reference it using an ObjectId that can be stored in an XRecord attached to the referencing entities (ObjectId references are correctly translated by AutoCAD in the deep clone process, but there's no such translation for handle references in stored in Xdata).