[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [pdt-dev] Question about PerFileModelAccessCache

For now looks good.
-- 
Dawid Pakula

On 3 September 2014 at 09:51:10, MichaÅ NiewrzaÅ (michal.n@xxxxxxxx) wrote:

Hi,
Dawid, what do you think about something between not having cache at all and implementing dedicated PHPSelectionEngine.getTypes() method? I think about removing elements filtration just for PHPSelectionEngine. It would look more or less like this:

This solution works for problem with hyperlinks from same namespace. I just don't now how it will affect the performance.

Michal


On Tue, Sep 2, 2014 at 3:13 PM, Dawid Paku Åa <zulus@xxxxxxxxx> wrote:
Hi,

PHPModelUtils.getTypes() have really strange implementation. I plan to change it while resolving bug 438091. 

I see two options for PHPSelectionEngine:

1. Remove cache usage from PHPModelUtils.getTypes() calls. Simple, cache will be used only for type hierarchy and TI while selection.
2. Implement PHPSelectionEngine.getTypes(). This method can internally use IModelAccessCache.getTypes(). Harder, but should work faster with large projects.

-- 
Dawid Paku la

On 1 September 2014 at 21:04:27, MichaÅ NiewrzaÅ (michal.n@xxxxxxxx) wrote:

Dawid, thanks for details. I understand problem with namespace implementation, but does moving implementation from IType to IPackageDeclaration will solve issue with classes from the same namespace? I think namespaces will be still filtered with generic method from PerFileAccessCache, or I miss something? :) 

Michal


On Mon, Sep 1, 2014 at 8:37 PM, Dawid Paku Åa <zulus@xxxxxxxxx> wrote:
Hi,

PerFileAccessCache is highly used with TI (Type Inference) and CA (Code Assist). Filtering to current source module make sense with this processes. For example If you are looking for MCurrentClass, current file should have a priority. Filters also reduces index lookup. Unfortunately namespaces are registered as types [1].

I introduced usage of PerFileModelCache in php selection engine while resolving bug 436907 [2], without this selections are very expensive on large projects.



-- 
Dawid Paku la

On 1 September 2014 at 20:03:43, MichaÅ NiewrzaÅ (michal.n@xxxxxxxx) wrote:

Hi,

Does anyone know the reason why results of getTypes method in PerFileModelAccessCache are filtered? I'm working with https://bugs.eclipse.org/bugs/show_bug.cgi?id=442964 and it looks that when I'm trying to hyperlink class from the same namespace this class/namespace is filtered from search results. Filter is using source module and if one element matches to source module then all elements must match. If there are no matching element to source module then all elements are valid. Probably I didn't explain it very clear :) Filtering method I was talking about https://github.com/eclipse/pdt/blob/master/plugins/org.eclipse.php.core/src/org/eclipse/php/internal/core/model/PerFileModelAccessCache.java#L117

I will be grateful for help :)
Michal 
_______________________________________________
pdt-dev mailing list
pdt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/pdt-dev

_______________________________________________
pdt-dev mailing list
pdt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/pdt-dev

_______________________________________________
pdt-dev mailing list
pdt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/pdt-dev

_______________________________________________
pdt-dev mailing list
pdt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/pdt-dev

_______________________________________________
pdt-dev mailing list
pdt-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/pdt-dev