View Issue Details

IDProjectCategoryView StatusLast Update
0002686MMW v4Otherpublic2008-08-25 21:28
Reporterjiri Assigned To 
PriorityurgentSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version2.5.4 
Fixed in Version3.1 
Summary0002686: Decrease memory requirements of internal data structures
DescriptionInternal change: TSongListData is unnecessarily large, some suggested changes (some others might apply as well):
1. Move all Web... fields to TAddSongListData structure (as it was in MM 2.5) (try to use 'record' instead of 'class' if possible)
2. Other fields that could (possibly?) be moved into TAddSongListData:
  TemporaryOrder, tempString, PreviewStart, PreviewLength, PreviewName, CacheName, Signature (before any access to these fields, the structure would have to be initialized, so maybe usage of properties would be good).
3. AudioCDTrack should be ShortInt (1 byte).
4. typeofnode - SmallInt (2 bytes).
5. Store MaxSample, NormalizeTrack as single (instead of double)?
6. Store Modified in Flags (as a single bit), make access using a property
7. Rating - SmallInt (2 bytes)
8. BPM - SmallInt (check out the code where it's used, to be sure it doesn't overflow, I think it was the case in the past).
9. VBR, Original, Copyrighted, Seekable, FLongTextLoaded - only a bit in Flags (access using a property)?
10. CacheStatus, PreviewState - ShortInt (1 byte)
11. Group all fields <4 bytes together so that they don't occupy space because of alignment.
TagsNo tags attached.
Fixed in build1185

Activities

petr

2006-11-03 12:22

developer   ~0008136

solved all except 8 and 11

petr

2006-11-03 15:17

developer   ~0008137

8 and 11 are done

jiri

2006-11-08 15:33

administrator   ~0008143

Last edited: 2006-11-08 15:58

It seems to be ok this way. Reopenning so that before 3.0 release we review the fields once more and make sure there aren't any unnecessarily, i.e. those that can't be shown in the main tracklist don't have to be in the main structure. Possible candicates: ISRC, RatingString, InvolvedPeople, ...

Maybe also CoverList and UpdateCoverList could be moved to FAddons? What impact would it have on album art browsing mode?

jiri

2006-11-21 14:32

administrator   ~0008188

- FMediaSNcalced is boolean and thus can be moved into Flags.

petr

2008-08-25 21:28

developer   ~0014483

Already fixed in 1185.