Comments (5)
Hello. I took a quick look at this from the Twitter app and did not see any stack frames with the term "jpeg" or "decode" in them. I've intentionally run this without symbols. Can you provide an Instruments trace or some screenshots with what you are seeing?
from ios-twitter-image-pipeline.
Hmm, yeah I can definitely get that. I'll do it tomorrow. One thing is these UIImage
s are being served to SwiftUI.Image
s. Maybe SwiftUI is missing an optimization. I can double check if that is the issue too.
from ios-twitter-image-pipeline.
from ios-twitter-image-pipeline.
It looks like a tick of a CADisplayLink timer is creating a Core Animation transaction that's kicking this off. I've not used SwiftUI, but in UIKit terms, I suspect the frame the view is being set to a size that does not match the underlying image that has been downloaded (and a contentMode of "fit").
Maybe you can set a breakpoint in setFrame
on the view and see where it's being set?
from ios-twitter-image-pipeline.
Hmm, there is no real setFrame equivalent, but I just tried replacing Image(uiImage: image)
with _UIImageView(image: image)
. and there is no decoding on the main thread, so seems like a bug in SwiftUI.Image.
private struct _UIImageView: UIViewRepresentable {
private let image: UIImage
init(image: UIImage) {
self.image = image
}
func makeUIView(context: Context) -> UIImageView {
return UIImageView()
}
func updateUIView(_ uiView: UIImageView, context: Context) {
uiView.image = image
}
typealias UIViewType = UIImageView
}
from ios-twitter-image-pipeline.
Related Issues (20)
- Change imageIdentifier later? HOT 2
- Controlling Animation on TIPImageView HOT 3
- Hydration Block Confusion HOT 2
- why rendered cache? HOT 1
- Is it suitable for the project which donβt have many different sizes of images? HOT 3
- Is it possible to set a maximum file size for image download / cacheing? HOT 1
- tvOS Platform Support HOT 2
- What kind of crash would be triggered when concurrently access to CGContext HOT 2
- Can't link to app HOT 5
- 2.11 not on CocoaPods? HOT 2
- Duplicate info.plist file in 2.11 Pods HOT 2
- Setting maxBytes = 0 does not work HOT 2
- Signed/Unsiged Build Failure on Xcode 11 beta 1 HOT 1
- ITMS-90338: Non-public API usage - imageDimensions, imageFilePath HOT 2
- 2.13.0 is the latest version on cocoapods HOT 7
- Detecting WebP via TIPDetectImageType and TIPDetectImageTypeFromFile? HOT 1
- Please release 2.25.0 via CocoaPods HOT 2
- Leverage iOS 15 image decoding
- changes to continuous integration
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ios-twitter-image-pipeline.