2016-08-06 47 views
0

我是一位新的软件开发人员,我想问一个简单的问题。我有一个像电影管理的分贝。这个分贝可容纳8000部电影。我想知道是否应该用电影表对象加载列表,或者在用户滚动电影列表时进行延迟加载?将整个数据库加载到内存中或不是

我编辑给更多的解释:在伪代码目前 我做的:

我有一个列表控件显示(列表中的每部电影都行):

Title 
originaltitle 
director 
genre 

我加载清单:

List<Movie>moviesList=db.getAllMovies(); 

这很好,因为我可以在内存中进行排序和过滤。我有内存中的所有数据。 但我的问题是,如果是更好的:

List<Long>=moviesList=db.getMoviesId(); 

这是很好的内存管理,但是当用户滚动下来,我必须加载影片对象,以显示标题原来的片名,导演和类型。

如果我应该按年排序怎么办?

我应该再次加载电影ID吗?

+2

没有简单的答案,这完全取决于你的环境和要求。 – Marvin

+0

好吧,通常存在数据库,因此您可以执行'db.getMovies(query)'并获取匹配记录列表所需的所有信息 – Aprillion

回答

3

我将加载为用户滚动列表。所以当列表增长时,你不必修改任何代码来处理内存问题。我总是设计分页:偏移量,限制等,偏移量默认为0,并将默认值限制在X.加载100K对于最终用户来说是不愉快的,并且如果他们不滚动所有内容,则会浪费计算时间。事实上,有一次服务器崩溃,因为有人做了一个API调用了100,000条记录,价值大约600MB-700MB的数据。

相关问题