Duration alternatives and similar libraries
Based on the "Tools" category.
Alternatively, view Duration alternatives based on common mentions on social networks and blogs.
-
SwiftGen
The Swift code generator for your assets, storyboards, Localizable.strings, โฆ โ Get rid of all String-based APIs! -
Lona
A tool for defining design systems and using them to generate cross-platform UI code, Sketch files, and other artifacts. -
Xcodes.app
The easiest way to install and switch between multiple versions of Xcode - with a mouse click. -
FBSimulatorControl
idb is a flexible command line interface for automating iOS simulators and devices -
GDPerformanceView-Swift
Shows FPS, CPU and memory usage, device model, app and iOS versions above the status bar and report FPS, CPU and memory usage via delegate. -
AppDevKit
AppDevKit is an iOS development library that provides developers with useful features to fulfill their everyday iOS app development needs. -
iSimulator
iSimulator is a GUI utility to control the Simulator, and manage the app installed on the simulator. -
Blade
Better asset workflow for iOS developers. Generate Xcode image catalogs for iOS / OSX app icons, universal images, and more. -
Realm Browser
DISCONTINUED. DEPRECATED - Realm Browser for Mac OS X has been replaced by realm-studio which is cross platform. -
Cookiecutter
DISCONTINUED. A template for new Swift iOS / macOS / tvOS / watchOS Framework project ready with travis-ci, cocoapods, Carthage, SwiftPM and a Readme file -
SuperDelegate
DISCONTINUED. SuperDelegate provides a clean application delegate interface and protects you from bugs in the application lifecycle -
abandoned-strings
Command line program that detects unused resource strings in an iOS or OS X application. -
AVXCAssets-Generator
AVXCAssets Generator takes path for your assets images and creates appiconset and imageset for you in just one click
SaaSHub - Software Alternatives and Reviews
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Duration or a related project?
README
Duration
A simple Swift package for measuring and reporting the time taken for operations. It is derived from a version for Playgrounds that I blogged about some time ago, but kept needing to use in various projects.
License
Duration is distributed under the Apache 2.0 license
Usage
Duration supports iOS, OS X, tvOS, and Linux.
Installation
Install via the Swift Package Manager
Add the following to your Package.swift
.Package(url: "https://github.com/SwiftStudies/Duration.git", majorVersion: 1)
Simple Measurements
There are two methods for simple timing measurements. You can insert calls before and after the section of code you wish to measure, for example
Duration.startMeasurement("Tough Math")
yourToughMathStuff()
Duration.stopMeasurement()
Or you can use a block
Duration.measure("Tough Math"){
yourToughMathStuff()
}
Or even
Duration.measure("Tough Math", block: yourToughMathStuff)
In all cases (by default) you will get the output (assuming it took 243 milliseconds)
Tough Math took: 243ms
If measurements are nested, they will be appropriately indented in the output, for example if yourToughMath()
made a measurement of part of its code you would see
Measuring Tough Math: Part 1 took: 100ms Part 2 took: 143ms Tough Math took: 243ms
Understanding Performance Deviations
In order to better understand how your code is impacted by other things the system is doing you can get average times and standard deviations for block based measurements by supplying a number of iterations for the block, so
Duration.measure("Tough Math", iterations: 10, forBlock:myToughMath)
Would run the block 10 times, taking and reporting the 10 individual measurements and then the average time taken for the block, together with the standard deviation
Measuring Tough Math Iteration 1 took: 243ms Iteration 2 took: 242ms ... Iteration 10 took: 243ms Tough Math Average: 243ms Tough Math STD Dev.: 1ms
Stopping Report Generation
Because you may want to stop reporting of measurements in release builds, you can set the logStyle
variable in order to control the logging behavior
Duration.logStyle = .None
Will disable measurement logging. In the future I will extend this library to support logging to a data-structure for subsequent analysis, but at this point there are two valid values .None
and .Print
If you are using Duration within a Package of your own that you are distributing, rather than just over-writing the log style, you can push your desired style, then pop it to restore it to what a consuming package would want. For example
public func myMethod(){
//Because this is a release of your package
//don't log measurements
pushLogStyle(.None)
// Do stuff that is instrumented
//Restore the logging style to whatever it was
//before
popLogStyle()
}
Reporting Issues
Please report issues using GitHub's standard system
*Note that all licence references and agreements mentioned in the Duration README section above
are relevant to that project's source code only.