Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IFile.write performance overhead #1443

Open
jukzi opened this issue Jun 24, 2024 · 0 comments
Open

IFile.write performance overhead #1443

jukzi opened this issue Jun 24, 2024 · 0 comments
Labels
bug Something isn't working performance

Comments

@jukzi
Copy link
Contributor

jukzi commented Jun 24, 2024

IFile.write invokes org.eclipse.core.filesystem.provider.FileStore.fetchInfo() several times:
image
That should not be needed. - similar to #1442 for the read case

@jukzi jukzi added bug Something isn't working performance labels Jun 24, 2024
jukzi pushed a commit to jukzi/eclipse.platform that referenced this issue Jun 25, 2024
Assume the file does not exist (normal case) - otherwise implementation
fails later during actual write.

eclipse-platform#1443
jukzi pushed a commit to jukzi/eclipse.platform that referenced this issue Jun 25, 2024
Optimistically assume the parent folder already exists on local File
System when it exists in workspace (normal case). So do not explicitly
check it. If it did not exist file write will fail and can be retried
after creating the parent in File System.
This optimization is only implemented for byte[] content in the not
appending case:
 * InputStream content would need a reset.
 * In append mode it is not obvious if something was already appended.

eclipse-platform#1443
jukzi pushed a commit to jukzi/eclipse.platform that referenced this issue Jun 25, 2024
Assume the file does not exist (normal case) - otherwise implementation
fails later during actual write.

eclipse-platform#1443
jukzi pushed a commit to jukzi/eclipse.platform that referenced this issue Jun 25, 2024
Optimistically assume the parent folder already exists on local File
System when it exists in workspace (normal case). So do not explicitly
check it. If it did not exist file write will fail and can be retried
after creating the parent in File System.
This optimization is only implemented for byte[] content in the not
appending case:
 * InputStream content would need a reset.
 * In append mode it is not obvious if something was already appended.

eclipse-platform#1443
jukzi pushed a commit to jukzi/eclipse.platform that referenced this issue Jun 25, 2024
Assume the file does not exist (normal case) - otherwise implementation
fails later during actual write.

eclipse-platform#1443
jukzi pushed a commit to jukzi/eclipse.platform that referenced this issue Jun 26, 2024
Optimistically assume the parent folder already exists on local File
System when it exists in workspace (normal case). So do not explicitly
check it. If it did not exist file write will fail and can be retried
after creating the parent in File System.
This optimization is only implemented for byte[] content in the not
appending case:
 * InputStream content would need a reset.
 * In append mode it is not obvious if something was already appended.

eclipse-platform#1443
jukzi pushed a commit to jukzi/eclipse.platform that referenced this issue Jun 26, 2024
Optimistically assume the parent folder already exists on local File
System when it exists in workspace (normal case). So do not explicitly
check it. If it did not exist file write will fail and can be retried
after creating the parent in File System.
This optimization is only implemented for byte[] content in the not
appending case:
 * InputStream content would need a reset.
 * In append mode it is not obvious if something was already appended.

eclipse-platform#1443
jukzi pushed a commit to jukzi/eclipse.platform that referenced this issue Jun 26, 2024
Optimistically assume the parent folder already exists on local File
System when it exists in workspace (normal case). So do not explicitly
check it. If it did not exist file write will fail and can be retried
after creating the parent in File System.
This optimization is only implemented for byte[] content in the not
appending case:
 * InputStream content would need a reset.
 * In append mode it is not obvious if something was already appended.

eclipse-platform#1443
jukzi pushed a commit that referenced this issue Jun 26, 2024
Assume the file does not exist (normal case) - otherwise implementation
fails later during actual write.

#1443
jukzi pushed a commit to jukzi/eclipse.platform that referenced this issue Jun 27, 2024
Optimistically assume the parent folder already exists on local File
System when it exists in workspace. So do not explicitly check it. If it
did not exist file write will fail and can be retried after creating the
parent in File System - which can only happen when the workspace is out
of sync with local File System.
This optimization is only implemented for byte[] content in the not
appending case:

 * InputStream content would need a reset.
 * In append mode it is not obvious if something was already appended.

eclipse-platform#1443
jukzi pushed a commit that referenced this issue Jun 27, 2024
Optimistically assume the parent folder already exists on local File
System when it exists in workspace. So do not explicitly check it. If it
did not exist file write will fail and can be retried after creating the
parent in File System - which can only happen when the workspace is out
of sync with local File System.
This optimization is only implemented for byte[] content in the not
appending case:

 * InputStream content would need a reset.
 * In append mode it is not obvious if something was already appended.

#1443
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working performance
Projects
None yet
Development

No branches or pull requests

1 participant