Comments (4)
@sambitdash can you explain more how you can "vectorize" this to make it a vector operation?
from pdfio.jl.
The vector operation code generation is to be carried out by the compiler not human optimized as the code needs to be run on varied disparate processors. Most processors support vector operations like SIMD if the code does not have unnecessary branching. However, if you are look at the byte operation code it's full of branching. A sample code for this can be seen in the comment:
JuliaLang/julia#23267 (comment)
However, the generated code was not reviewed for potential further optimizations. Hope this explains what is needed.
Also note that you may not need error handling in stream operations but can repair errors as streams may have corrupt data. So error recovery may be desirable than exit on failure.
from pdfio.jl.
This may not be needed as PDF spec does not mandate the streams to have even number of hexits. It can also have control characters like CR-LF. So the branching may be significantly higher. Closing now.
from pdfio.jl.
Current implementation is about 60ms for a 10Mb stream on i7 processor.
Julia Version 0.6.2
Commit d386e40c17 (2017-12-13 18:08 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
WORD_SIZE: 64
BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell)
LAPACK: libopenblas64_
LIBM: libopenlibm
LLVM: libLLVM-3.9.1 (ORCJIT, skylake)
from pdfio.jl.
Related Issues (20)
- RomanNumerals fixed
- Add test cases for AGL. HOT 4
- Error in `merge_encoding!` when extracting text HOT 12
- Text extraction ignores different kinds of white spaces
- Error on open a file: ArgumentError: extra characters after whitespace in "4970\n396" HOT 1
- `zlib1` error in Windows HOT 3
- assert error reading a pdf HOT 7
- problem extracting text on a two columns layout HOT 6
- Still active? HOT 1
- Incorrect Doc Info HOT 1
- Bug: no method matching read_internal_stream_data(::IOStream, ::CosDict, ::Base.GenericIOBuffer{Array{UInt8,1}}) HOT 6
- OpenSSL warning upon `using PDFIO` HOT 8
- ERROR: MethodError: no method matching String(::PDFIO.Cos.CosIndirectObject{CosName}) HOT 1
- New release? HOT 2
- ERROR: Found 'j(106)' Expected 'x' here HOT 6
- Precompilation issue with Julia v1.6 HOT 4
- TagBot trigger issue HOT 7
- Bad PDF files which have junk characters before header and after EOF marker error unexpected character. HOT 5
- Support for AbstractTrees v0.3 HOT 3
- AssertionError: Invalid interval HOT 8
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 pdfio.jl.