SELECT data_key, data_value
FROM xf_data_registry
WHERE data_key IN ('options', 'languages', 'contentTypes', 'codeEventListeners', 'deferredRun', 'simpleCache', 'addOns', 'defaultStyleProperties', 'routeFiltersIn', 'routeFiltersOut', 'routesPublic', 'nodeTypes', 'bannedIps', 'discouragedIps', 'styles', 'displayStyles', 'userBanners', 'smilies', 'bbCode', 'threadPrefixes', 'userTitleLadder', 'reportCounts', 'moderationCounts', 'userModerationCounts', 'notices', 'userFieldsInfo')
Run Time: 0.000611
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | xf_data_registry | range | PRIMARY | PRIMARY | 27 | | 26 | Using where |
SELECT data_key, data_value
FROM xf_data_registry
WHERE data_key IN ('brListenerClasses', 'brBriviumAddOns')
Run Time: 0.000153
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | xf_data_registry | range | PRIMARY | PRIMARY | 27 | | 2 | Using where |
SELECT *
FROM xf_brivium_addon
ORDER BY addon_id
Run Time: 0.000239
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | xf_brivium_addon | index | | PRIMARY | 77 | | 1 | |
INSERT INTO xf_data_registry
(data_key, data_value)
VALUES
(?, ?)
ON DUPLICATE KEY UPDATE
data_value = VALUES(data_value)
Params: brBriviumAddOns, a:0:{}
Run Time: 0.000147
SELECT cache_value
FROM xf_permission_combination
WHERE permission_combination_id = ?
Params: 1
Run Time: 0.000456
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | xf_permission_combination | const | PRIMARY | PRIMARY | 4 | const | 1 | |
SELECT thread.*
,
user.gender, user.avatar_date, user.gravatar,
NULL AS thread_read_date,
0 AS thread_reply_banned,
0 AS thread_is_watched,
'' AS draft_message, NULL AS draft_extra
FROM xf_thread AS thread
LEFT JOIN xf_user AS user ON
(user.user_id = thread.user_id)
WHERE thread.thread_id = ?
Params: 292105
Run Time: 0.000481
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | thread | const | PRIMARY | PRIMARY | 4 | const | 1 | |
SIMPLE | user | const | PRIMARY | PRIMARY | 4 | const | 1 | |
SELECT node.*, forum.*
,
permission.cache_value AS node_permission_cache,
NULL AS forum_read_date
FROM xf_forum AS forum
INNER JOIN xf_node AS node ON (node.node_id = forum.node_id)
LEFT JOIN xf_permission_cache_content AS permission
ON (permission.permission_combination_id = 1
AND permission.content_type = 'node'
AND permission.content_id = forum.node_id)
WHERE node.node_id = ?
Params: 25
Run Time: 0.000555
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | forum | const | PRIMARY | PRIMARY | 4 | const | 1 | |
SIMPLE | node | const | PRIMARY | PRIMARY | 4 | const | 1 | |
SIMPLE | permission | const | PRIMARY | PRIMARY | 35 | const,const,const | 1 | |
SELECT post.*
,
thread.*, thread.user_id AS thread_user_id, thread.username AS thread_username,
thread.post_date AS thread_post_date,
post.user_id, post.username, post.post_date,
bb_code_parse_cache.parse_tree AS message_parsed, bb_code_parse_cache.cache_version AS message_cache_version,
user.*, IF(user.username IS NULL, post.username, user.username) AS username,
user_profile.*,
user_privacy.*,
signature_parse_cache.parse_tree AS signature_parsed, bb_code_parse_cache.cache_version AS signature_cache_version,
session_activity.view_date AS last_view_date,
0 AS like_date
FROM xf_post AS post
INNER JOIN xf_thread AS thread ON
(thread.thread_id = post.thread_id)
LEFT JOIN xf_bb_code_parse_cache AS bb_code_parse_cache ON
(bb_code_parse_cache.content_type = 'post' AND bb_code_parse_cache.content_id = post.post_id)
LEFT JOIN xf_user AS user ON
(user.user_id = post.user_id)
LEFT JOIN xf_user_profile AS user_profile ON
(user_profile.user_id = post.user_id)
LEFT JOIN xf_user_privacy AS user_privacy ON
(user_privacy.user_id = post.user_id)
LEFT JOIN xf_bb_code_parse_cache AS signature_parse_cache ON
(signature_parse_cache.content_type = 'signature' AND signature_parse_cache.content_id = post.user_id)
LEFT JOIN xf_session_activity AS session_activity ON
(post.user_id > 0 AND session_activity.user_id = post.user_id AND session_activity.unique_key = CAST(post.user_id AS BINARY))
WHERE (
(post.thread_id = ? AND (post.position >= 0 AND post.position < 10) )
)
AND (post.message_state IN ('visible'))
ORDER BY post.position ASC, post.post_date ASC
Params: 292105
Run Time: 0.002765
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | thread | const | PRIMARY | PRIMARY | 4 | const | 1 | Using filesort |
SIMPLE | post | ref | thread_id_post_date,thread_id_position | thread_id_post_date | 4 | const | 1 | Using index condition; Using where |
SIMPLE | bb_code_parse_cache | eq_ref | content_type_id | content_type_id | 31 | const,xenforo.cc.post.post_id | 1 | Using where |
SIMPLE | user | eq_ref | PRIMARY | PRIMARY | 4 | xenforo.cc.post.user_id | 1 | |
SIMPLE | user_profile | eq_ref | PRIMARY | PRIMARY | 4 | xenforo.cc.post.user_id | 1 | |
SIMPLE | user_privacy | eq_ref | PRIMARY | PRIMARY | 4 | xenforo.cc.post.user_id | 1 | |
SIMPLE | signature_parse_cache | eq_ref | content_type_id | content_type_id | 31 | const,xenforo.cc.post.user_id | 1 | Using where |
SIMPLE | session_activity | eq_ref | PRIMARY | PRIMARY | 22 | xenforo.cc.post.user_id,func | 1 | Using where |
INSERT INTO xf_thread_view
(thread_id)
VALUES
(?)
Params: 292105
Run Time: 0.000100
INSERT INTO `xf_session` (`session_id`, `session_data`, `expiry_date`) VALUES (?, ?, ?)
Params: 0f43c9e2098e2adcc4d2c5a7e7b964c3, , 1714334755
Run Time: 0.000692
INSERT INTO xf_session_activity
(user_id, unique_key, ip, controller_name, controller_action, view_state, params, view_date, robot_key)
VALUES
(?, ?, ?, ?, ?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
ip = VALUES(ip),
controller_name = VALUES(controller_name),
controller_action = VALUES(controller_action),
view_state = VALUES(view_state),
params = VALUES(params),
view_date = VALUES(view_date),
robot_key = VALUES(robot_key)
Params: 0, , , XenForo_ControllerPublic_Thread, Index, valid, thread_id=292105, 1714331155,
Run Time: 0.000110
INSERT INTO xf_bb_code_parse_cache
(content_type, content_id, parse_tree, cache_version, cache_date)
VALUES (?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE parse_tree = VALUES(parse_tree),
cache_version = VALUES(cache_version),
cache_date = VALUES(cache_date)
Params: post, 298725, a:21:{i:0;s:364:"Swift 项目目前已经达到核心基础结构成熟的关键里程碑,提供了可靠的稳定性,在苹果平台(如 macOS 和 iOS)上,ABI 的到来和模块稳定性使创建稳定的二进制框架成为可能,此外,在 Xcode 和其它 IDE 中都集成了 Swift Package Manager,为构建和分发 Swift 库提供了跨平台解决方案。
";i:1;a:4:{s:3:"tag";s:3:"url";s:6:"option";s:72:"https://static.cnbetacdn.com/thumb/article/2019/0326/edb1c434e2d6215.png";s:8:"original";a:2:{i:0;s:80:"[URL='https://static.cnbetacdn.com/thumb/article/2019/0326/edb1c434e2d6215.png']";i:1;s:6:"[/URL]";}s:8:"children";a:1:{i:0;a:4:{s:3:"tag";s:3:"img";s:6:"option";N;s:8:"original";a:2:{i:0;s:5:"[IMG]";i:1;s:6:"[/IMG]";}s:8:"children";a:1:{i:0;s:96:"https://rdimg.com/proxy/https://static.cnbetacdn.com/thumb/article/2019/0326/edb1c434e2d6215.png";}}}}i:2;s:99:"
这些改变对于 Swift 软件生态的发展至关重要,在此基础上,开发团队已经";i:3;a:4:{s:3:"tag";s:3:"url";s:6:"option";s:55:"https://forums.swift.org/t/on-the-road-to-swift-6/32862";s:8:"original";a:2:{i:0;s:63:"[URL='https://forums.swift.org/t/on-the-road-to-swift-6/32862']";i:1;s:6:"[/URL]";}s:8:"children";a:1:{i:0;s:42:"规划好接下来 Swift 6 的发展路径";}}i:4;s:5:"。
";i:5;a:4:{s:3:"tag";s:1:"b";s:6:"option";N;s:8:"original";a:2:{i:0;s:3:"[B]";i:1;s:4:"[/B]";}s:8:"children";a:1:{i:0;s:34:"加快 Swift 软件生态的发展";}}i:6;s:31:"
社区发力方向包括:
";i:7;a:4:{s:3:"tag";s:4:"list";s:6:"option";N;s:8:"original";a:2:{i:0;s:6:"[LIST]";i:1;s:7:"[/LIST]";}s:8:"children";a:1:{i:0;s:277:"
[*]
扩展可用和支持 Swift 的平台数量。
[*]
改进如何安装和部署用 Swift 编写的软件。
[*]
支持跨平台工具,例如语言服务器协议(LSP)、代码格式化、重构和 Swift Package Manager。
[*]
发展丰富的开源库生态。
";}}i:8;s:325:"
其中,最后一点包括完善标准库和鼓励新库的增长,这将使在各种领域中使用 Swift 变得更加容易和自然。鼓励的新库包括使用 Swift 开发服务所需的关键库以及诸如 Swift Numerics 之类的库,这些库在科学计算和机器学习等各种用例中都必不可少。
";i:9;a:4:{s:3:"tag";s:1:"b";s:6:"option";N;s:8:"original";a:2:{i:0;s:3:"[B]";i:1;s:4:"[/B]";}s:8:"children";a:1:{i:0;s:27:"创造出色的开发体验";}}i:10;s:218:"
Swift 的另一个目标是提供出色的开发人员体验。简而言之,在 Swift 中进行编程时,开发人员应该既高效又体验良好。目前正在大力改善核心开发人员体验,例如:
";i:11;a:4:{s:3:"tag";s:4:"list";s:6:"option";N;s:8:"original";a:2:{i:0;s:6:"[LIST]";i:1;s:7:"[/LIST]";}s:8:"children";a:1:{i:0;s:121:"
[*]
更快地构建
[*]
更有用、更准确地诊断
[*]
响应代码补全
[*]
可靠而流畅的调试体验
";}}i:12;s:2:"
";i:13;a:4:{s:3:"tag";s:1:"b";s:6:"option";N;s:8:"original";a:2:{i:0;s:3:"[B]";i:1;s:4:"[/B]";}s:8:"children";a:1:{i:0;s:40:"继续强化 Swift 语言本身的能力";}}i:14;s:192:"
核心团队还希望继续使 Swift 成为更强大的编程语言和更好的解决问题的工具,为了实现这一愿景,需要重点关注 Swift 语言本身以下三个方面:
";i:15;a:4:{s:3:"tag";s:4:"list";s:6:"option";N;s:8:"original";a:2:{i:0;s:6:"[LIST]";i:1;s:7:"[/LIST]";}s:8:"children";a:1:{i:0;s:386:"
[*]
完善支持构建具有表现力和优雅 API 的语言的能力,例如可变参数泛型和 DSL 能力(如函数构建器)
[*]
完善 Swift 的实现和功能,使其可以用于低级系统编程(或在受约束的环境中),以及服务和机器学习等重要领域
[*]
为主要语言特性(例如内存所有权和并发性)提供出色的解决方案
";}}i:16;s:142:"
最后,开发团队介绍了团队核心开发成员的变化,Dave Abrahams 从核心团队退出,Saleem Abdulrasool(Swift 移植到";i:17;a:4:{s:3:"tag";s:3:"url";s:6:"option";s:32:"https://microsoft.pvxt.net/x9Vg1";s:8:"original";a:2:{i:0;s:40:"[URL='https://microsoft.pvxt.net/x9Vg1']";i:1;s:6:"[/URL]";}s:8:"children";a:1:{i:0;s:7:"Windows";}}i:18;s:442:"的主要倡导者)与 Tom Doron(Swift 服务器工作组的主要组织者)加入核心团队。
团队并没有发布 Swift 6 具体的时间表,但表示以上所述都是接下来 Swift 5.x 及至 Swift 6 发展的要点,并且接下来将主要朝着“ownership”上发展。
ownership 是指 Swift 的内存所有权模型(Memory Ownership Model),接下来的 Swift 在语言上将进一步向 John McCall 发表的 ";i:19;a:4:{s:3:"tag";s:3:"url";s:6:"option";s:69:"https://github.com/apple/swift/blob/master/docs/OwnershipManifesto.md";s:8:"original";a:2:{i:0;s:77:"[URL='https://github.com/apple/swift/blob/master/docs/OwnershipManifesto.md']";i:1;s:6:"[/URL]";}s:8:"children";a:1:{i:0;s:16:"ownership 宣言";}}i:20;s:149:"发展。团队表示 Swift 6 与 Swift 5.x 版本之间的区别将是该语言特性的重大变化,需要时间进行讨论、调研与实现。";}, 1621686945, 1714331155
Run Time: 0.000834