Comments (2)
They aren't strictly like-for-like, take for example ExpressMapper vs AutoMapper; the AutoMapper registration is cfg.CreateMap<Foo, Foo>()
whereas the ExpressMapper registration uses custom Member
mappings e.g. .Member(foo => foo.Foos, foo => foo.Foos != null ? foo.Foos.Map<List<Foo>, List<Foo>>() : new List<Foo>())
.
I tried running the tests and do get very high times for ExpressMapperComplexTypeMapper
& ExpressMapperDeepMapper
, however when removing the custom member mappings to make it a fair test with the others (and removing the assertions) I get the following results.
AutoMapperComplexTypeMapper 9.8261461
ExpressMapperComplexTypeMapper 143.674907
AutoMapperDeepMapper 1.4314013
ExpressMapperDeepMapper 133.096825
With custom member mappings removed:
AutoMapperComplexTypeMapper 10.4125455
ExpressMapperComplexTypeMapper 6.3748084
AutoMapperDeepMapper 1.3606325
ExpressMapperDeepMapper 1.9715963
It seems there is a performance issue but it looks isolated to custom member mappings.
from expressmapper.
Hi!
Thanks for the info!
I added the collection member mappings to create empty collections instead of leaving the properties null. For example in the Deep mapper test, if I map new Customer { Name = "Steve" }
to a CustomerDto
, the result object's Addresses
and AddressesArray
are both null with ExpressMapper, but populated with empty collections with AutoMapper and AgileMapper.
I may well have not done it in the best way - is there a better way you can suggest?
Cheers,
Steve
from expressmapper.
Related Issues (20)
- Problem with mapping nested objects having the same property names as parent object HOT 1
- Benchmarks HOT 3
- RegisterCustom and MapExists HOT 1
- Floating issue with mapping enum to class return null HOT 1
- Naming Case Convention
- Does not work with .NET Core 1.1 HOT 7
- ExpressMapper crashes when Mapper.Compile() is called: Default constructor not found HOT 4
- "No parameterless constructor defined for this object" when map inherited class
- Need a small improvement to the flatten name matching HOT 6
- manage conditional mapping simply for merging
- The cache used by CompileNonGenericCustomTypeMapper is not thread-safe HOT 2
- Circular referencing leading to stackoverflow exception while converting my dbcontext object into DTO object
- Add to Benchmarks AgileMapper HOT 1
- After hook not setting property?
- ExpressMapper .net core production ready? HOT 1
- can I map only null or stringEmpty propety?
- Corrupting dictionary in multi-threaded environment HOT 1
- how to get the different fields/properies when before/after mapped ?
- Merge objects similarly to JS spread operator
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 expressmapper.