Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[mylar-dev] Re: Improve InterestFilter#containsMylarInterestFilter performance

We can use JavaSE5 feature  as below
 private boolean containsMylarInterestFilter(StructuredViewer viewer) {
  ViewerFilter[] filters = viewer.getFilters();
  for (ViewerFilter filter : filters) {
   if (filter instanceof InterestFilter) {
    return true;
   }
  }
  return false;
 }


 
2006/2/18, bin Wang <wangbin777@xxxxxxxxx>:

I find below method is not much good and we can improve its performance

 private boolean containsMylarInterestFilter(StructuredViewer viewer) {
  boolean found = false;
  for (int i = 0; i < viewer.getFilters().length; i++) {
   ViewerFilter filter = viewer.getFilters()[i];
   if (filter instanceof InterestFilter)
    found = true;
  }
  return found;
 }


Below are the problems:
problem 1) calling viewer.getFilters() is very heightweight
problem 2) we can break the for statement or return directly if found.

So I guesst modify it to
 private boolean containsMylarInterestFilter(StructuredViewer viewer) {
  ViewerFilter[] filters = viewer.getFilters();
  for (int i = 0, n = filters.length; i < n; i++) {
   if (filters[i] instanceof InterestFilter) {
    return true;
   }
  }
  return false;
 }



Back to the top