问题标签 [app-startup]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Application.Run 和 Form.Load 之间会发生什么?
我有一个用 VB.NET 为 Framework 4.5 编写的 WinForms 应用程序。我注意到应用程序的启动时间异常长(我编写的其他在启动时做更多工作的应用程序几乎立即启动,这个应用程序需要> 5秒)多次启动后启动时间不会改变,所以我猜这不是应用程序首次启动期间未缓存的 CLR 代码的情况。
我通过在启动期间记下时间进行了一些测试:
Sub Main()
是应用程序的入口点。它运行frmMain
,我可以控制的第一件事是Sub InitializeComponent()
由设计师生成:
最后我到达了Form.Load
活动
现在,MyLog 的输出如下:
您可以看到,主要停顿发生在Application.Run()
和之间Sub InitializeComponent()
。我从其他问题中知道,GUI 线程启动了一个消息循环,但我不知道为什么这个应用程序比其他应用程序慢得多。
所以我的问题是:Application.Run 和我重新控制代码之间到底发生了什么,我可以做些什么来加快它的速度吗?在那里完成的工作是否与表单上的组件相关?
我已经尝试过使用frmMain.ShowDialog()
而不是Application.Run(frmMain)
,但这导致了相同的结果。我正在使用 Visual Studio Express,所以很遗憾我不能使用更深入的性能分析器。
将其标记为 C# 和 VB.NET,因为两种语言的答案都非常受欢迎。
编辑
我做了更多的测试,包括 SLaks answer 中提出的解决方案。使用NGEN
预编译程序集似乎没有任何明显的效果。所以我猜这不是代码的JIT编译InitializeComponent
。
然而,我注意到,在其他系统上,该程序几乎可以立即启动(快 10 倍以上),即使所讨论的计算机在所有方面都较慢。计算机之间的区别在于操作系统:
这些只是更多的线索,我真的不知道它是否有助于回答。
编辑 2
在启动期间查看 ProcMon 我发现执行挂起在以下几行:
该问题仅在发布版本中进一步出现,并且仅在我直接从 Windows 资源管理器启动程序时出现。调试版本会立即启动(0.3 秒,而 5-10 秒),从 Visual Studio 启动的发布版本也是如此。
sql-server - SQL Server 的 Hangfire 配置
我正在编写一个 MVC 5 互联网应用程序,并希望Hangfire
用于重复性任务。
我如何设置Hangfire
使用SQL Server storage
而不在Startup.Auth
ConfigureAuth(IAppBuilder app)
函数中指定它。
这是 SQL Server 配置的资源链接:http: //docs.hangfire.io/en/latest/configuration/using-sql-server.html
该资源指出:
如果要在不适用 OWIN Startup 类的 Web 应用程序之外使用 Hangfire,请手动创建 SqlServerStorage 实例并将其传递给 JobStorage.Current 静态属性。参数是一样的。
示例代码如下:
我尝试了以下代码(使用我自己的连接字符串),但仪表板不可用。我已经从控制器函数中调用了上面的代码。
有什么我没有做对的吗?如何在不使用类的情况下设置Hangfire
使用?SQL Server storage
Startup.Auth
提前致谢。
java - Android Studio 仅更改一次启动活动
我正在开发一个带有导航抽屉的Android应用程序以这种方式工作:用户打开应用程序并弹出一个教程(一个带有寻呼机滑动片段的活动,称为ScreenSlideActivity.java);当用户完成滑动教程时,他按下“完成”按钮导致 MainActivity 的初始化(创建一个drawerLayout,drawerToggle等)
我需要做的是在应用程序首次启动后只打开一次教程活动。
我在主活动中尝试过这段代码:
确保 ScreenSlideActivity.java 立即启动。这个解决方案的问题是,当教程打开时,我不能再从那里访问 MainActivity.java,既不能从“向上”按钮也不能从教程最后一页的“完成”按钮,可能是因为某种原因我不再将主要活动作为父活动。
然后我尝试了这个解决方案更改应用程序的启动活动 - Android修改清单 xml 文件。添加:
到 ScreenSlideActivity。这个解决方案的问题是它改变了我的项目的结构,使我的 ScreenSlideActivity.java 作为 Main 和 Launching Activity(因此我不能再从这里访问 MainActivity),而我只想显示一次。
我还可以做些什么?
java - Eclipse RCP:正在运行的插件列表
我正在尝试改进我的 RCP 应用程序启动时间。
启用 30 个插件的启动时间与启用 10 个插件的启动时间不同,即使我所有的插件都是延迟初始化的(所以在启动后根据我的日志只加载了 10 个插件)。
我试图了解有什么不同,所以我想看看当前正在运行哪些插件。
有没有办法在 Eclipse 调试视图中查看正在运行的插件列表?
configuration - 在代码中配置 Glimpse
Glimpse 当前在 MVC5 的 Web 配置中配置,如下所示:
是否有可能使用 web 激活器或从全局 App Start 调用的类来配置代码中的一瞥?
ios - iOS App 启动时间过长
我有一个应用程序:
- 自定义顶栏和底栏,
- 包含 5 个其他垂直滚动视图的水平滚动视图
- 滚动视图充满了图像网格(没有集合视图)
- 抓取时从左侧进入的视图(google play store 风格)
所以我在那里有一些观点,我不使用界面生成器。
如果我在 iPhone 4s 上启动我的应用程序(未处于调试模式),我的应用程序需要将近 10 秒才能加载,所以我的启动画面会持续 10 秒。
为什么我的应用需要这么长时间才能加载?
我测试了它,从内存中加载所有图像只需要 1.3 秒。
我的应用是否只需要 8.7 秒来加载我的布局?
我通过代码编写了所有布局,没有使用约束,我在 viewController 的 viewWillappear() 方法中为所有视图分配了框架大小和位置。
我怎样才能让它在开始时加载得更快?我在哪里做错了?可能是布局的加载错误吗?
谢谢
android - 有没有办法使用外部配置文件分发 Android 应用程序?
我有一个 Android 应用程序需要在启动时读取一些自定义参数(例如 URL)。这些参数因客户而异。
我期望做的是:
- “广播”APK
- 为每个客户提供特定的参数文件(在名为 custom_par.xml 的外部单独文件中)以在启动时读取
我不想在app项目里面有一个配置文件:如果我需要把app给一个新客户,我只需要给他写一个新的custom_par.xml,和标准一起打包”常见”APK。
是否可以?
profiling - 使用 DotTrace 性能时如何理解“本机或优化代码”中的性能问题
我在我的 Web 应用程序上使用 DotTrace Performance (v 5.5.4)。我正在尝试在冷启动 MVC 5 应用程序后优化页面加载时间。查看快照上的主线程,似乎大部分工作都是在“本机或优化代码”中完成的。这似乎有点过于笼统,并没有真正的帮助。这到底意味着什么,我该如何进一步深入研究?
注意:我在 jetbrains 论坛上找到了类似的帖子,但那里似乎也没有发布任何解决方案。
logging - 我可以为 Spring Boot 应用程序配置启动和关闭日志吗?
为了能够验证 Spring Boot 应用程序的启动和关闭,我们希望配置一个 startup.log 和 shutdown.log 捕获启动和关闭应用程序的事件。
为了启动一切:
并从以下位置关闭所有内容:
到最后。
这是特定于容器的东西吗?(Tomcat vs Jetty vs Undertow)
exe - 在启用了 UAC 的 Windows 2008 服务器上重新启动计算机上运行 EXE
我有一个 exe,它在系统重新启动时作为启动进程运行。在启用 UAC 的机器上,它阻止了我的 exe 的启动。我该如何解决这个问题?